2013年Java中@notnull注释的情况如何?
2022-09-04 04:30:22
似乎有相当多的不同注释来指示Java中方法参数和返回值的可空性状态,并且这种情况一直在发展。
2013 年为可空性批注方法的最佳做法是什么?
我知道这个问题,但它是从3年前开始的,我怀疑从那时起情况已经发生了变化:
我个人使用IntelliJ IDEA,但希望有一个解决方案不会将我的项目与该IDE联系起来。我使用Maven进行依赖关系管理。
似乎有相当多的不同注释来指示Java中方法参数和返回值的可空性状态,并且这种情况一直在发展。
2013 年为可空性批注方法的最佳做法是什么?
我知道这个问题,但它是从3年前开始的,我怀疑从那时起情况已经发生了变化:
我个人使用IntelliJ IDEA,但希望有一个解决方案不会将我的项目与该IDE联系起来。我使用Maven进行依赖关系管理。
AFAIK,几乎是标准的库是com.google.code.findbugs:jsr305。例如,它是番石榴使用的。它得到了FindBugs的支持,它可能是最常用的字节码分析工具。
IntelliJ也支持这些注释。
之所以有这么多,是因为防御性编程和输入验证之间存在差异。
@NotNull是java bean validation framework JSR 303。@Nullable是JSR 305,它用于合同防御性编程/设计。
发现虫子番石榴一是事实上的JSR 305。Hibernate提供了几乎事实上的JSR 303。