Lombok's @NonNull VS javax.annotation.Nonnull
哪种方法和方法参数更好?
The answer here含糊地比较了所有注释,但无法推断哪个注释最好。我只是想知道两者中更好的一个。
答案 0 :(得分:1)
通过简单的Google搜索来找到文档,这两者之间就产生了非常明显的区别。
javax.annotation.Nonnull
是JSR-305的一部分,似乎已经死了。即使不是这种情况,上述注释也只能用于静态代码分析目的,例如您的IDE会警告您,在不可接受的某个地方传递了空值。
lombok.NonNull
是一个非常不同的故事。首先,所述注释不用于验证目的或静态代码分析目的。当实例变量或参数不应该为空时,Lombok使用此注释来激发NPE。
Lombok,作为注解后处理程序,将在预编译过程中有效地拾取此注解,并将自动生成所需的代码以有效地处理这些情况(通过操作AST)。
您可以在此处了解更多信息:Lombok - NonNull。
似乎您对javax.annotation
相关功能和Lombok功能都不是最好的,所以我建议您对什么是什么有个很好的了解。