龙目岛的@NonNull或javax @Nonnull

时间:2019-02-05 15:31:58

标签: java null annotations lombok non-nullable

Lombok's @NonNull VS javax.annotation.Nonnull

哪种方法和方法参数更好?

The answer here含糊地比较了所有注释,但无法推断哪个注释最好。我只是想知道两者中更好的一个。

1 个答案:

答案 0 :(得分:1)

通过简单的Google搜索来找到文档,这两者之间就产生了非常明显的区别。

javax.annotation.Nonnull是JSR-305的一部分,似乎已经死了。即使不是这种情况,上述注释也只能用于静态代码分析目的,例如您的IDE会警告您,在不可接受的某个地方传递了空值。

lombok.NonNull是一个非常不同的故事。首先,所述注释不用于验证目的或静态代码分析目的。当实例变量或参数不应该为空时,Lombok使用此注释来激发NPE。

Lombok,作为注解后处理程序,将在预编译过程中有效地拾取此注解,并将自动生成所需的代码以有效地处理这些情况(通过操作AST)。

您可以在此处了解更多信息:Lombok - NonNull

似乎您对javax.annotation相关功能和Lombok功能都不是最好的,所以我建议您对什么是什么有个很好的了解。