Java @Deprecatedアノテーション

1. 概要

このクイックチュートリアルでは、Javaの非推奨のAPIと_ @ Deprecated_アノテーションの使用方法について説明します。

2. _ @ Deprecated_アノテーション

プロジェクトが進化するにつれて、そのAPIは変わります。 時間が経つにつれて、特定のコンストラクター、フィールド、型、またはメソッドがありますが、これらはユーザーが使用したくないものです。
プロジェクトのAPIの後方互換性を壊す代わりに、これらの要素に_ @ Deprecated_ annotation __.__のタグを付けることができます
  • _ @ Deprecated_は、他の開発者に、* *マークされた要素はもはや使用すべきではない *使用されない*ことを伝えます。 _ @ Deprecated_アノテーションの隣にJavadocを追加して、適切な動作を提供するより良い代替手段を説明することも一般的です。

public class Worker {
    /**
     * Calculate period between versions
     * @deprecated
     * This method is no longer acceptable to compute time between versions.
     * <p> Use {@link Utils#calculatePeriod(Machine)} instead.
     *
     * @param machine instance
     * @return computed time
     */
    @Deprecated
    public int calculate(Machine machine) {
        return machine.exportVersions().size() * 10;
    }
}
コンパイラは、注釈付きのJava要素がコードのどこかで使用されている場合にのみ、非推奨のAPI警告を表示することに注意してください。 そのため、この場合、_calculate_メソッドを呼び出すコードがある場合にのみ表示されます。
また、Javadocの_ @ deprecated_タグを使用して、ドキュメント内の非推奨ステータスを通知することもできます*。

3. Java 9で追加されたオプションの属性

  • Java 9は、いくつかのオプション属性を_ @ Deprecated_注釈に追加します:_since_および_forRemoval _。*

    _since_ attributeには、廃止予定の要素のバージョンを定義できる文字列が必要です。 デフォルト値は空の文字列です。
    And _forRemoval_は、次のリリースで要素を削除するかどうかを指定できる_boolean_です。 デフォルト値は_false:_
public class Worker {
    /**
     * Calculate period between versions
     * @deprecated
     * This method is no longer acceptable to compute time between versions.
     * <p> Use {@link Utils#calculatePeriod(Machine)} instead.
     *
     * @param machine instance
     * @return computed time
     */
    @Deprecated(since = "4.5", forRemoval = true)
    public int calculate(Machine machine) {
        return machine.exportVersions().size() * 10;
    }
}
簡単に言えば、上記の使用法は、_calculate_がライブラリの4.5以降廃止され、次のメジャーリリースで削除される予定であることを意味します。
これを追加すると便利です。*その値を持つメソッドを使用していることが検出されると、コンパイラーはより強力な警告を表示します*。
*そして、IDEからのサポートが既にあります* * _forRemoval = true ._ * IntelliJでマークされたメソッドの使用を検出するために、たとえば、コードhttps://www.vojtechruzicka.com/java-9-enhanced-deprecationを突破します/ [赤い線]黒い線の代わりに。

4. 結論

この簡単な記事では、_ @ Deprecated_注釈とそのhttps://docs.oracle.com/javase/9​​/docs/api/java/lang/Deprecated.html [オプションの属性]を使用して、使用すべきではありません。
サンプルの完全なソースコードは、https://github.com/eugenp/tutorials/tree/master/core-java-modules/core-java-annotations [GitHub上]にあります。