Lombok的@NonNull或javax@NonNull

Lombok的@NonNull或javax@NonNull,java,null,annotations,lombok,non-nullable,Java,Null,Annotations,Lombok,Non Nullable,VS javax.annotation.Nonnull 哪一个更好地用于方法参数以及何时使用 模糊地比较所有注释,但无法推断哪一个注释最好。我只是想知道两者中更好的一个。一个简单的谷歌搜索来查找文档,就会得出两者之间非常明显的区别 javax.annotation.Nonnull是JSR-305的一部分,它似乎已经死了。即使情况并非如此,该注释也只能用于静态代码分析目的,例如,IDE警告您在不可接受的地方传递空值 lombok.NonNull是一个非常不同的故事。首先,所述注释不是用于验证目的,

VS javax.annotation.Nonnull

哪一个更好地用于方法参数以及何时使用


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

一个简单的谷歌搜索来查找文档,就会得出两者之间非常明显的区别

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

lombok.NonNull是一个非常不同的故事。首先,所述注释不是用于验证目的,而是用于静态代码分析目的。Lombok使用此注释在实例变量或参数不应该为null时,只要它们为null,就会触发NPE

Lombok作为注释后处理器,将在预编译过程中有效地提取该注释,并将自动生成所需的代码,以便通过操纵AST有效地处理这些情况

您可以在此处阅读更多信息:


看来您对javax.annotation相关功能和Lombok功能的熟悉程度都不是最好的,因此我建议您好好阅读一下what is what。

通过简单的谷歌搜索来查找文档,可以发现两者之间的明显区别

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

lombok.NonNull是一个非常不同的故事。首先,所述注释不是用于验证目的,而是用于静态代码分析目的。Lombok使用此注释在实例变量或参数不应该为null时,只要它们为null,就会触发NPE

Lombok作为注释后处理器,将在预编译过程中有效地提取该注释,并将自动生成所需的代码,以便通过操纵AST有效地处理这些情况

您可以在此处阅读更多信息:


看来您对javax.annotation相关功能和Lombok功能的熟悉程度都不是最好的,所以我建议您好好阅读一下what is what。

我不这么认为。上述问题过于泛化,涵盖了许多@NonNull注释。我只想在两者之间进行比较。你说,我只是想更好地了解两者。哪种注释最好取决于您的需要,您还没有说明这一点。链接问题的讨论提供了很多信息,帮助你做出明智的决定。我不这么认为。上述问题过于泛化,涵盖了许多@NonNull注释。我只想在两者之间进行比较。你说,我只是想更好地了解两者。哪种注释最好取决于您的需要,您还没有说明这一点。链接问题的讨论提供了很多信息,帮助您做出明智的决定。我对使用这些注释还不熟悉。您认为哪种方法是防止传递给方法参数的空引用的最好和最干净的方法@这真的取决于你想要实现什么。首先,您需要了解Lombok是一个第三方库,因此将它添加到您的项目中可能会产生后果。Lombok还需要特定的IDE插件才能工作。如果您在一个项目上非单独工作,添加它可能会让您的开发伙伴感到困惑,因为Lombok所做的远不止空检查。如果不提供关于用例的更多信息以及构建应用程序所使用的内容,这个问题很难得到回答。您认为哪种方法是防止传递给方法参数的空引用的最好和最干净的方法@这真的取决于你想要实现什么。首先,您需要了解Lombok是一个第三方库,因此将它添加到您的项目中可能会产生后果。Lombok还需要特定的IDE插件才能工作。如果您在一个项目上非单独工作,添加它可能会让您的开发伙伴感到困惑,因为Lombok所做的远不止空检查。如果不提供更多关于您的用例以及您用来构建应用程序的内容的信息,这个问题很难回答。