似乎有两个不同的JSR用于注释。
JSR-305:软件缺陷检测的注释 (附加资源)
JSR-308:Java类型上的注释 (附加资源)
两者都似乎面向静态代码分析。
你知道:
- 这两者中哪一个将被包含在Java SE 7或Java EE 6中吗?
- 每个JSR有多“稳定”?
- 其中一个是否取代了另一个?
似乎有两个不同的JSR用于注释。
JSR-305:软件缺陷检测的注释 (附加资源)
JSR-308:Java类型上的注释 (附加资源)
两者都似乎面向静态代码分析。
你知道:
我可以回答你的最后一个问题。它们不是同一件事情。305是关于新注解的,你可以将它们放在已经存在的地方,这可以帮助通过设计契约系统提供编程可见性。因此,如果某个方法应该不返回null,或者如果某个方法应该永远不会接收到null参数,那么就有可能告诉分析注解的系统在这段代码中寻找这个特定的情况。
308是关于能够注释更多的东西,例如泛型参数和类型转换。我想主要用途是能够抑制特定类型转换的警告,而不必为此声明局部变量。@SuppressWarnings注解已经存在(而JSR-305将尝试定义新的注解),但在JSR-308中可以应用于更多情况。
根据这个,308将成为Java7的一部分,这意味着它已经相当稳定了。JSR-305没有列在列表中,所以看起来它不会进入Java7。
对于未来的读者,JSR 308正在集成到Java 7中。它的一些更改已经被推送到Java 7的公共测试版中。然而,JSR305没有通过审核。