JSR305与JSR 308(Java类型注释) - 哪个将成为标准?

时间:2009-09-25 11:23:04

标签: java java-7 jsr305

注释似乎有两种不同的JSR。

JSR-305: Annotations for Software Defect Detection (additional resource)
JSR-308: Annotations on Java Types (additional resource)

两者似乎都面向静态代码分析。

你知道吗:

  • 这两者中的哪一个将在Java SE 7或Java EE 6中?
  • 每个JSR的“稳定”程度如何?
  • 是否取代(或废弃)另一个?

3 个答案:

答案 0 :(得分:15)

我可以回答你的上一个问题。它们不是同一件事。 305是关于您可以放置​​它们的新注释,这有助于通过合同系统提供对设计的编程可见性。因此,如果某个方法不应返回null,或者某个方法应该永远不会收到空参数,则可以告诉系统分析注释以在这段代码中查找这个特定情况。

308是关于能够注释更多的东西,例如泛型参数和类型转换。我想,主要用途是能够抑制特定类型转换的警告,而不必为此目的声明局部变量。 @SuppressWarnings注释已经存在(而JSR-305希望定义新注释),但在JSR-308中它可以应用于更多情况。

根据this 308将成为Java7的一部分,这意味着它很稳定。 JSR-305不在列表中,所以看起来它不会像Java7那样。

答案 1 :(得分:12)

根据这份文件,最新更新于2010-09-19,JSR 308是 “推迟到JDK 8或更高版本”: http://openjdk.java.net/projects/jdk7/features/

答案 2 :(得分:1)

对于未来的读者来说,JSR 308正在被集成到Java 7中。它的一些变化已经被推到了Java 7的公共测试版中.JSR305然而没有成功。