非推奨の注釈とJavadocタグ

Sunのドキュメント「いつ、どのように API を 非推奨とするか」を参照。

  • @Deprecated 注釈(アノテーション)をつけてプログラム的に非推奨であることを明示する(コンパイラとかツール向け)。
  • Javadocタグ @deprecated で非推奨の理由を説明したり、代替手段を案内したりする(API利用者向け)。
/**
 * @deprecated {@link #bar()}の方を使ってね。
 */
@Deprecated public int foo() {
    :
    :
}

Java 言語仕様では、@Deprecated 注釈が記されたクラス、メソッド、またはフィールドが使用されたときには、コンパイラが警告を発行するよう定められています。一方、@deprecated Javadoc タグでマークされたクラス、メソッド、またはフィールドが使用されたときにコンパイラが警告を発行するべきことは Java 言語仕様では定められていません。 もっとも、現行の Sun コンパイラでは、このタグが使用されている場合でも警告は発行されます。ただし、今後も Sun のコンパイラでこのような警告を発行するという保証はありません。