JSR 305 的状态是什么?

2022-08-31 09:38:40

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

我也明白,目前,Java 7将有308,而305不是,我对305的整体状态感到好奇。

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


答案 1

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

引用 JSR 308 页面:

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

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

截至2017年,JSR 305(新注释)继续具有“休眠”的官方地位。自2010年以来,关于它在谷歌组中的地位的问题一直没有得到解答。

这里有一个JSR-305注释的参考实现,许多项目都使用它,包括番石榴。使用 maven,您可以通过将以下内容添加到 pom 来使用 JSR-305 参考实现:

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

答案 2

JSR 305 不会是 Java 8 的一部分:


推荐