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