【问题标题】:Cannot annotate inherited variable issue. Best alternative无法注释继承的变量问题。最佳选择
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 2012-04-06
      • 2014-11-10
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多