web-dev-qa-db-ja.com

Javaでクラスの非推奨に注釈を付ける方法は?

Javaのクラスを非推奨にします。

@Deprecated
class deprecatedClass

そして私はこの非推奨のクラスのリストを持っています、

List<deprecatedClass> listOfDeperecatedClass

したがって、このリストにも@Deprecatedタグを追加する必要がありますか?


編集:@Deprecatedには大文字の「D」が必要です。
参照: http://docs.Oracle.com/javase/7/docs/api/Java/lang/Deprecated.html

14
user1772643

いいえ、その必要はありません。注釈を追加する@Deprecated to DeprecatedClassは、使用されるたびに警告を生成します。


ただし、shouldすることは、otherクラスのメソッドをマークして、非推奨のクラスを引数として受け取るか、非推奨として返すことです。これは、他のコードが非推奨のクラスのインスタンス(パブリックフィールド、定数など)にアクセスする必要がある場合にも当てはまります。もちろん、これらは非推奨のcalsのインスタンスなしでは使用できないため、警告が表示されますが、適切な非推奨の注釈とコメントで、説明を提供し、代替案を示す必要があります。これは貴重な情報です。 必要与える。

メソッドシグネチャはコントラクトに似ており、クラスシグネチャも同様です。他のプログラマーに、どのメソッドを呼び出すことができ、どのように呼び出すことができるかを伝えています。どのフィールドにアクセスできるかを伝えています。他のプログラマーは、それに基づいてコードを作成します。そのコントラクトを本当に破る必要がある場合は、最初にそのコントラクトの代替(同じ機能を持つ新しいメソッド)を提供し、その新しいコントラクトに切り替える時間を与える必要があります(古いメソッドとクラスは非推奨になります) 。

もちろん、上記はあなたが聴衆にコーディングしていることを前提としています。コードを使用しているのがあなただけで、ビルドを中断せずにコードをクリーンアップするために非推奨にしたい場合は、クラスを非推奨にし、警告を修正して、削除してください。

4
SQB

パブリックインターフェイスの一部としてListを操作しますか?その場合は、これらすべてのメソッドもdeprecatedとしてマークしてください。そうでなければあなたは大丈夫なはずです。

3
Keppil

非推奨にするものの宣言に非推奨メッセージを追加するだけで済みます。これは、List<DeprecatedClass>などの非推奨のクラスを使用する実装を避ける必要があるという警告として機能します。

2
BlackBox

次のようにマークするだけです。

@Deprecated
List<deprecatedClass> listOfDeperecatedClass

大丈夫なはずです。

1
Seid.M