Lombok的@NonNull VS javax.annotation.NonNull
哪一个更适合用于方法参数以及何时使用?
这里的答案模糊地比较了所有的注释,但没有推断出哪一个是最好的。我只是想知道两者中更好的一个。
javax.annotation.Nonnull
是JSR-305的一部分,它似乎已经死了。即使不是这样,所说的注释也只能用于静态代码分析目的,例如,您的IDE警告您,您正在将null值传递到不可接受的地方。
lombok.NonNull
是一个非常不同的故事。首先,所述注释不是用于验证目的,而是用于静态代码分析目的。Lombok使用此注释在实例变量或参数为空时激发NPE,而不应该这样做。
作为一个注释后处理程序,Lombok将在预编译过程中有效地获取这个注释,并自动生成所需的代码来有效地处理这些情况(通过操纵AST)。
你可以在这里阅读更多关于这个:龙目-非Null。
您似乎对javax.annotation
相关功能和龙目的功能都不是最熟悉的,所以我建议您好好阅读一下什么是什么。