使用Lombok的NonNull列表项

时间:2017-03-15 21:09:57

标签: java lombok

我目前正在构建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,或者我是否需要删除注释并自己实现该类型的保护?

1 个答案:

答案 0 :(得分:0)

根据Lombock documentation

  

你可以在方法或构造函数的参数上使用@NonNull让lombok为你生成一个null-check语句。

因此,您必须将@NonNull注释放在student方法的参数(在构建器类中)而不是私有字段students(在Classroom类中)。

public student(@NonNull String name){
    students.add(name);
}