似乎有很多不同的注解来指示 Java 中方法参数和返回值的可空性状态,并且情况一直在发展。
2013 年注释我的可空性方法的最佳实践是什么?
我知道这个问题,但它是从 3 年前开始的,我怀疑从那时起情况发生了变化:
我个人使用 IntelliJ IDEA,但希望有一个不会将我的项目与该 IDE 绑定的解决方案。我使用 Maven 进行依赖管理。
似乎有很多不同的注解来指示 Java 中方法参数和返回值的可空性状态,并且情况一直在发展。
2013 年注释我的可空性方法的最佳实践是什么?
我知道这个问题,但它是从 3 年前开始的,我怀疑从那时起情况发生了变化:
我个人使用 IntelliJ IDEA,但希望有一个不会将我的项目与该 IDE 绑定的解决方案。我使用 Maven 进行依赖管理。
AFAIK,几乎标准的库是 com.google.code.findbugs:jsr305。例如,它是 Guava 使用的那个。FindBugs 支持它,这可能是最常用的字节码分析工具。
IntelliJ 也支持这些注释。
有这么多的原因是防御性编程和输入验证之间存在差异。
@NotNull 是 Java bean 验证框架 JSR 303。@Nullable 是 JSR 305,用于防御性编程/合同设计。
Find bugs guava 一个是事实上的 JSR 305。Hibernate 提供了许多事实上的 JSR 303。