2013年使用Java中的@notnull注释会出现什么情况?

时间:2013-06-08 21:05:03

标签: java annotations

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

2013年有哪些最佳做法可以注释我的可空性方法?

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

Which @NotNull Java annotation should I use?

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

2 个答案:

答案 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.