【发布时间】:2016-01-08 13:14:33
【问题描述】:
我有一个带有验证注释变量的类:
import javax.validation.constraints.NotNull;
public class Class_A {
@NotNull
private String name;
public getName() {
return name;
}
}
该类在函数中使用:
public void myFunction(Class_A aObj) {
System.out.println(aObj.getName());
}
但是现在,我想有条件地使用验证。我已经搜索并发现没有办法有条件地检查验证,所以我想我必须将 Class_A 分成两个类,一个有验证(Class_A_Val),一个没有验证(Class_A_NoVal)。
通过这样做,我只能为 myFunction 想到以下解决方案:
1)复制myFunction,每个类一个(代码重复)
2) 使用抽象方法 getName() 创建一个抽象类,并让其他两个类继承这个抽象类,这样我就可以调用 myFunction(Abstract_Class_A)
3)用getName()方法创建一个接口,让其他两个类实现这个接口,这样我就可以调用myFunction(Interface_Class_A)
哪种方法被认为是最好的方法,为什么?我倾向于#2。
还有其他方法可以实现吗?
有没有办法注释继承的变量?
【问题讨论】:
标签: java inheritance annotations