Lombok's @NonNull VS javax.annotation.Nonnull
哪个更适合用于方法参数以及何时使用?
The answer here模糊地比较了所有注释,但无法推断出哪一个是最好的。我只是想知道两者中哪个更好。
最佳答案
一个简单的谷歌搜索来查找文档会产生两者之间非常明显的区别。javax.annotation.Nonnull
是 JSR-305 的一部分,它似乎已经死了。即使情况并非如此,注释也只能用于静态代码分析目的,例如您的 IDE 警告您,您正在某个 Not Acceptable 地方传递空值。lombok.NonNull
是一个非常不同的故事。首先,所述注释不用于验证目的或静态代码分析目的。 Lombok 使用此注释在实例变量或参数不应该为空时触发 NPE。
Lombok 作为注解后处理器将在预编译过程中有效地获取此注解,并将自动生成所需的代码以有效处理这些情况(通过操作 AST)。
您可以在此处阅读更多信息:Lombok - NonNull .
看来你对javax.annotation
都很熟悉相关的功能和 Lombok 的功能并不是最好的,所以我建议好好阅读一下什么是什么。
关于java - Lombok 的 @NonNull 或 javax @Nonnull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54537853/