我目前正在构建Java应用程序并使用Lombok注释来减少样板。但是,当我一起使用@Singular
和@NonNull
注释时,我遇到了问题。例如,让我们看一下以下示例类:
@Builder
class Classroom {
@Singular @NonNull
private List<String> students;
}
我希望@NonNull注释能够防止单独添加null
元素 ,如下所示:
Classroom.builder()
.student("Sally")
.student("Joe")
.student(null)
.build();
但是,即使使用注释,null
元素仍会在构建Classroom
对象时添加到列表中。有没有一种简单的方法,使用Lombok注释,将单个元素标记为NonNull,或者我是否需要删除注释并自己实现该类型的保护?
答案 0 :(得分:0)
你可以在方法或构造函数的参数上使用@NonNull让lombok为你生成一个null-check语句。
因此,您必须将@NonNull
注释放在student
方法的参数(在构建器类中)而不是私有字段students
(在Classroom类中)。
public student(@NonNull String name){
students.add(name);
}