2013年Java中@notnull注释的情况如何?

2013年Java中@notnull注释的情况如何?,java,annotations,Java,Annotations,在Java中,似乎有很多不同的注释来指示方法参数和返回值的可空性状态,并且这种情况一直在发展 2013年在注释我的可空性方法方面有哪些最佳实践 我知道这个问题,但它是从3年前开始的,我怀疑从那时起情况发生了变化: 我个人使用IntelliJ IDEA,但希望找到一种解决方案,而不是将我的项目与IDE绑定在一起。我使用Maven进行依赖关系管理。AFAIK,几乎是标准的库是com.google.code.findbugs:jsr305。例如,它是番石榴用的那种。FindBugs支持它,它可能是最

在Java中,似乎有很多不同的注释来指示方法参数和返回值的可空性状态,并且这种情况一直在发展

2013年在注释我的可空性方法方面有哪些最佳实践

我知道这个问题,但它是从3年前开始的,我怀疑从那时起情况发生了变化:


我个人使用IntelliJ IDEA,但希望找到一种解决方案,而不是将我的项目与IDE绑定在一起。我使用Maven进行依赖关系管理。

AFAIK,几乎是标准的库是com.google.code.findbugs:jsr305。例如,它是番石榴用的那种。FindBugs支持它,它可能是最常用的字节码分析工具


IntelliJ也支持这些注释。

之所以有这么多注释,是因为防御性编程和输入验证之间存在差异

@NotNull是JavaBean验证框架JSR303@可为空的是JSR305,用于防御性编程/合同设计


查找bugs guava one是Fafacto JSR 305。Hibernate提供了几乎完全正确的JSR303。

如果他使用maven,当他添加番石榴时,他将免费获得它。guava one是一个不错的选择,因为谷歌是这些注释的最大支持者。@AdamGent:as of guava 13+。