Lombok 提供 注释 @NonNull
执行 nullcheck 并抛出 NPE(如果未进行不同配置)。
我不明白为什么我会按照该文档 示例 中的说明使用该注释:
private String name;
public NonNullExample(@NonNull Person person) {
super("Hello");
if (person == null) {
throw new NullPointerException("person is marked @NonNull but is null");
}
this.name = person.getName();
}
无论如何都会抛出 NPE。此处使用注释 imo 的唯一原因是您是否希望异常与 NPE 不同。
编辑:我知道异常会被显式抛出并因此“受控”,但至少错误消息的文本应该是可编辑的,不是吗?
原文由 metters 发布,翻译遵循 CC BY-SA 4.0 许可协议
编写诸如
@NonNull
类的类型注释有多种用途。@NonNull
注释或使用明确的程序员编写的检查。 “Vanilla Java”版本要么有拼写错误(@NonNull
),要么在 Lombok 处理后显示代码。