JSR305与JSR308(Java类型Anotations) - 这将是标准?(JSR305 vs

2019-08-16 20:33发布

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

JSR-305:软件缺陷检测的注解 (额外资源)
JSR-308:关于Java类型的注解 (额外资源)

双方似乎对静态代码分析取向。

你知道吗:

  • 这两者的将是要么在Java SE 7或Java EE 6?
  • 如何“稳定”是每个JSR?
  • 做一个取代版本(或者淘汰)其他?

Answer 1:

我可以回答你的最后一个问题。 它们不是同一件事。 305是关于新的注解,你已经可以把它们,这可以帮助提供方案可视性通过合同制度的设计。 所以,如果某个方法应该不会返回null,或者一定的方法应该是从来没有收到一个空参数,就可以告诉系统分析注释看出来,在这段代码这种特殊情况下。

308是对能够注释更多的东西,例如一个通用的参数和类型转换。 我想应该是一个主要用途是能够抑制对特定类型转换的警告,而不必声明一个局部变量用于这一目的。 @SuppressWarnings注释已经存在(而JSR-305看起来来定义新的),​​但在JSR-308它可以被应用到更多的情况。

根据这个 308将Java7,这将意味着它是相当不错一起成为稳定的一部分。 JSR-305是不在名单上,所以它看起来并不像它会使其向Java7。



Answer 2:

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



Answer 3:

对于未来的读者,JSR 308被集成到Java 7,它的一些变化已经被推到Java 7 JSR305的公共测试版却没有获得晋级。



文章来源: JSR305 vs. JSR308 (Java Type Anotations) - Which is going to be the standard?