JSR 305的状态如何?

我已经看到了JSR305与JSR308(Java Type Anotations)的问题 – 哪一个将成为标准? 我理解JSR 308和JSR 305之间的区别。

我也明白,目前,308是Java 7的命名,305不是,我对305的整体状况感到好奇。

具体来说,我在我的一些项目中使用Google Collections和JSR-305 ( 与Guice最佳实践倡导的类似方式),并想知道是否有更“未来的方向” – 我应该使用的友好方法代替。 我也打算在JSR-305小组上询问这个问题,但这个小组没有太多的活动,我只是想知道这里有没有人有更多的信息。

正如在这个答案中所描述的, JSR-305提出了新的注释,例如@NonNull ,而JSR-308则build议允许在新的位置注释,例如通用声明。

引用JSR 308页面:

…本文档不提供任何注释,只是指定它们可以在Java代码中出现的位置。

JSR 308(新位置的注释)包含在JEP 104下的java 8中 。

截至2017年, JSR 305 (新注释)继续保持“hibernate”的官方地位。 自2010年以来,关于谷歌地位的问题一直没有得到答复。

这里有一个JSR-305注释的参考实现,许多项目都使用它,包括番石榴。 通过maven,你可以使用JSR-305参考实现,把它添加到你的pom中,

<dependency> <groupId>com.google.code.findbugs</groupId> <artifactId>jsr305</artifactId> <version>3.0.0</version> </dependency> 

JSR 305不会成为Java 8的一部分:

  • Java 8 仍然计划于2014年3月18日发布 。
  • 截至2014年3月5日, JSR 305 保持hibernate状态 。

Java 8由JSR 337描述:规范已达到最终状态: 请参见此处 。

  • JSR 308肯定是在
  • JSR 305绝对是

根据Alex Millers的Java 7博客 ,JSR-308(和305)计划进入Java 7.也许他会在这里出现,并给你更多的信息。