无法对继承的变量问题进行注释.最佳选择



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

    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。
有没有其他方法可以实现这一点?有没有一种方法可以注释继承的变量?

您可以使用xml配置覆盖注释。点击此处了解更多信息。