今天我使用SpringBoot遇到了问题,我有一个父抽象类,该抽象类定义了一个带有spring注释的受保护字段。
@Length(max=100)
protected String uuid;
在我的子类中,需要将@Length批注的最大值设置为其他值,而我正在为如何做到这一点而绞尽脑汁。阅读后,我怀疑有一种方法可以在类构造函数中的类成员变量上设置注释,这样我可以为成员变量uuid定义@Length注释,然后覆盖子构造函数中的值,但未找到任何示例或文档如果可能的话。任何有关如何使用spring覆盖子类中父级受保护变量注释的想法或示例,将不胜感激。
这是正在使用的全套注释...
@ApiModelProperty("Unique ID For My Object")
@Length(max=100)
@Pattern(regexp = "\\S*")
protected String uniqueId
答案 0 :(得分:0)
在Java中,没有诸如覆盖变量之类的东西。只能覆盖方法。最后的声明提出了有关如何解决此问题的想法。如果您不直接在属性上指定注释,而是在特定字段的getter上指定注释,例如:
class Parent{
private String uniqueId;
...
@ApiModelProperty("Unique ID For My Object")
@Length(max=100)
@Pattern(regexp = "\\S*")
public String getUniqueId(){
return uniqueId;
}
}
然后,您可以通过覆盖getter来覆盖子类中的那些属性:
class Child extends Parent{
private String uniqueId;
...
@ApiModelProperty("Unique ID For My Object")
@Length(max=200)
@Pattern(regexp = "\\S*")
public String getUniqueId(){
return uniqueId;
}
}
我还没有检查过这些注释是否也可以应用于吸气剂,但是我希望如此。