【发布时间】:2017-03-16 05:44:00
【问题描述】:
我目前正在构建一个 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,还是我需要删除注释并自己实现这种类型的保护?
【问题讨论】:
-
我认为
@NonNull注释意味着students列表本身不能为空。并不是说单个元素不能为空。 -
我知道注释意味着列表不能是
null;我希望它也能扩展到单个元素本身。 -
同意,如果能够单独从
Collection/Map/etc 本身指定元素,那将是很好的。