@Documented @Retention(RUNTIME) @Target({CONSTRUCTOR,FIELD,LOCAL_VARIABLE,METHOD,PACKAGE,MODULE,PARAMETER,TYPE}) public @interface Deprecated
@Deprecated
という注釈の付いたプログラム要素は、プログラマが使用できないプログラム要素です。 要素は、いくつかの理由のいずれかで非推奨になることがあります。たとえば、その使用はエラーにつながる可能性があります。互換性のない変更や、将来のバージョンで削除される可能性があります。新しい、通常は推奨される代替によって置き換えられるか、または廃止されます。
非推奨のコードで非推奨のプログラム要素が使用またはオーバーライドされると、コンパイラは警告を発行します。 @Deprecated
注釈をローカル変数宣言、パラメータ宣言またはパッケージ宣言で使用しても、コンパイラによって発行された警告には影響しません。
モジュールが非推奨になると、そのモジュールが requires
で使用され、exports
句またはopens
句で使用されないと、警告が発行されます。 非推奨になっているモジュールでは、モジュール内の型の使用に関する警告は発行されません。
この注釈型には、文字列値の要素since
があります。 この要素の値は、注釈付きプログラム要素が最初に非推奨になったバージョンを示します。
この注釈型には、ブール値の要素forRemoval
があります。 true
の値は、将来のバージョンで注釈付きプログラム要素を削除することを示します。 値false
は、注釈付きプログラム要素の使用が推奨されないことを示しますが、プログラム要素に注釈が付けられた時点では、そのプログラム要素を削除する具体的な意図はありませんでした。
- APIのノート:
@deprecated
javadocタグを使用して、プログラム要素を非推奨にする理由をドキュメントで説明することを強くお薦めします。 ドキュメントは、推奨される代替APIを提案し、該当する場合はリンクする必要があります。 置換APIのセマンティクスは微妙に異なることが多いため、このような問題についても検討する必要があります。since
値には、新しく注釈が付けられたすべてのプログラム要素を指定することをお薦めします。 この要素値がない多くの既存の注釈があるため、since
は必須にできません。注釈要素間に定義された順序はありません。 スタイルの問題として、
since
要素を先に配置する必要があります。@Deprecated
注釈は、@deprecated
javadocタグが存在する場合は常に存在し、その逆も同様です。- Java言語仕様を参照してください:
-
9.6.4.6 @Deprecated
- 導入されたバージョン:
- 1.5
-
オプション要素のサマリー
オプションの要素修飾子と型任意要素説明boolean
注釈付き要素が将来のバージョンで削除される可能性があるかどうかを示します。注釈付き要素が非推奨になったバージョンを返します。
-
要素の詳細
-
since
String since注釈付き要素が非推奨になったバージョンを返します。 バージョン文字列は、@since
javadocタグの値と同じ形式およびネームスペースです。 デフォルト値は空の文字列です。- 戻り値:
- バージョン文字列
- 導入されたバージョン:
- 9
- デフォルト:
""
-
forRemoval
boolean forRemoval注釈付き要素が将来のバージョンで削除される可能性があるかどうかを示します。 デフォルト値はfalse
です。- 戻り値:
- 要素が削除対象かどうか
- 導入されたバージョン:
- 9
- デフォルト:
false
-