无法注释继承的变量问题。最好的选择

时间:2016-01-08 13:14:34

标签: java inheritance annotations

我有一个带有验证注释变量的类:

    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 有没有其他方法来实现这个? 有没有办法注释一个继承的变量?

1 个答案:

答案 0 :(得分:0)

您可以使用xml配置覆盖注释。更多信息here