19

アノテーションには 2 つの異なる JSR があるようです。

JSR-305: ソフトウェア欠陥検出の注釈 (追加リソース)
JSR-308: Java 型の注釈 (追加リソース)

どちらも静的コード分析を対象としているようです。

あなたは知っていますか:

  • どちらが Java SE 7 と Java EE 6 のどちらになるのでしょうか?
  • 各JSRはどの程度「安定」していますか?
  • 一方が他方に取って代わる(または廃止する)か?
4

3 に答える 3

16

最後の質問にお答えします。それらは同じものではありません。305 は、既に配置できる新しい注釈に関するものであり、契約システムによって設計にプログラムによる可視性を提供するのに役立ちます。そのため、特定のメソッドが null を返さないことが想定されている場合、または特定のメソッドが null パラメーターを受信しないことが想定されている場合、注釈を分析するシステムに、このコードでこの特定のケースを探すように指示することができます。

308 は、ジェネリック パラメーターや型キャストなど、より多くのものに注釈を付けることができるようにすることです。その主な用途は、その目的のためにローカル変数を宣言するのではなく、特定の型キャストに関する警告を抑制できるようにすることだと思います。@SuppressWarnings アノテーションは既に存在しますが (JSR-305 は新しいものを定義するように見えます)、JSR-308 ではより多くのケースに適用できます。

これによると、 308 は Java7 の一部となり、これは安定性にかなり近づいていることを意味します。JSR-305 はリストにないので、Java7 にはなりそうにありません。

于 2009-09-25T13:25:18.540 に答える
12

このドキュメントによると、最終更新日は2010-09-19で、JSR308は「JDK8以降に延期」されています:http: //openjdk.java.net/projects/jdk7/features/

于 2010-12-05T04:37:17.437 に答える
1

将来の読者のために、JSR 308 は Java 7 に統合されています。その変更の一部は、すでに Java 7 のパブリック ベータ版にプッシュされています。しかし、JSR305 は採用されませんでした。

于 2009-11-18T15:25:47.607 に答える