JSR 305的状态如何?


101

我已经看到了JSR305与JSR308(Java类型注释)的问题-哪个将成为标准?并且我了解JSR 308JSR 305之间的区别。

我还了解到,此时Java 308的版本是308,而305不是。我对305的整体状态感到好奇。

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


1
我会接受您离开Kevin的答案,但是在那些文章中找不到明确说明它们将在Java 7中使用的地方吗?(在实际发布问题之前,我已经简短地查看了该信息。)您是否在其中看到具体提及(其包含在答案中)?在此先感谢您的帮助。
查理·柯林斯

1
经过这么多的时间,以及进行其他一些工作以弄清楚到底是什么情况之后,我授予了最佳答案,唯一答案和“答案”的区别。;)
查理·柯林斯


马克·莱因霍尔德(Mark Reinhold)最近在另一篇SO帖子上评论说: “将标明javax.annotation.NonNull标准化的JSR 305,由于其规格领先者AWOL而从未完成。”
流量

Answers:


67

如该答案中所述JSR-305提出了新的注释,例如@NonNull,而JSR-308提出了允许在新地方(例如,通用声明)进行注释。

引用JSR 308页面:

…该文档没有提出任何注释,仅指定了它们可以在Java代码中出现的位置。

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

截至2017年,JSR 305(新注释)继续保持“休眠”状态。一个问题,自2010年以来它的谷歌的组中的地位一直无人接听。

还有就是JSR-305注释的参考实现这里所使用的许多项目,包括番石榴。使用maven,可以通过将JSR-305参考实现添加到pom中来使用它:

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

2
链接到Maven Central上的com.google.code.findbugs:jsr305(最新版本现在为3.0.0)
Paolo Fulgoni

您可以使用与findbugs-maven-plugin(from org.codehaus.mojo)相同的版本来同步两者。
Christophe Roussy 2015年

2
Java 9已完成功能,但尚未发布,并且好像没有包含JSR-305。是否有另一个JSR添加了类似的注释?
dlamblin '16



1

根据Alex Millers Java 7博客,JSR-308(和305)计划加入Java7。也许他会出现在这里,并为您提供更多信息。


51
两者均未纳入
Miles

7
JSR308将使用Java 8,但(2013年3月)JSR 305仍处于休眠状态。
Maurice Naftalin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.