我是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
我想在@NotNull
,email
和imageURL
上应用authToken
属性。我可以通过将@NotNull
写入每个variable
但不喜欢这样做来实现。怎么做?
答案 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不支持此类型的多个注释。但是你可以写这样的东西
这样,字段将隐式注释为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;