注释似乎有两种不同的JSR。
JSR-305: Annotations for Software Defect Detection (additional resource)
JSR-308: Annotations on Java Types (additional resource)
两者似乎都面向静态代码分析。
你知道吗:
答案 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然而没有成功。