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

2022-09-04 04:30:22

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

2013 年为可空性批注方法的最佳做法是什么?

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

我应该使用哪种@NotNull Java 注释?

我个人使用IntelliJ IDEA,但希望有一个解决方案不会将我的项目与该IDE联系起来。我使用Maven进行依赖关系管理。


答案 1

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

IntelliJ也支持这些注释。


答案 2

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

@NotNull是java bean validation framework JSR 303。@Nullable是JSR 305,它用于合同防御性编程/设计。

发现虫子番石榴一是事实上的JSR 305。Hibernate提供了几乎事实上的JSR 303。


推荐