如何在多个变量上应用单个注释?

时间:2014-08-12 09:49:47

标签: java variables annotations

我是Java Annotation的新手,一直在寻找同时对多个变量应用单annotation

代码:

@Document(collection = "users")
public class User {

   private ObjectId id;

   @NotNull
   private String email;
   private String imageURL;
   private String authToken;

   private Date createdDate;
   private Date updateDate;
   private boolean isActivated;
   private int credits;

   .....getter/Setter Method

我想在@NotNullemailimageURL上应用authToken属性。我可以通过将@NotNull写入每个variable但不喜欢这样做来实现。怎么做?

2 个答案:

答案 0 :(得分:1)

@NotNull注释可以应用于元素而不是元素组。

  

JavaDoc:带注释的元素不能为null。接受任何类型。

如果你真的想摆脱锅炉板代码,你可以使用像龙目岛这样的框架,它可以在一定程度上帮助你。

链接:http://projectlombok.org/features/Data.html

或者您可以使用反射来验证所有方法。

for (Field f : obj.getClass().getDeclaredFields()) {
  f.setAccessible(true); // optional
  if (f.get(obj) == null) {
     f.set(obj, getDefaultValueForType(f.getType()));
     // OR throw error
  }
}

答案 1 :(得分:1)

Java不支持此类型的多个注释。但是你可以写这样的东西

  • 创建一个带注释字段的类。
  • 创建用于访问该字段的setter和getter。
  • 创建您的所有姓名,电子邮件字段作为此类的实例。

这样,字段将隐式注释为NotNull。

            public class NotNullString {
                @NotNull
                String str;
                public void set(String str)
                {
                    this.str = str;
                }
                public String get()
                {
                    return this.str;
                }
            }

            NotNullString name;
            NotNullString email;