2013-04-09 23 views
9

私はJavaでクラスを非難するつもりです。Javaでクラスの非推奨をアノテーションする方法は?

@Deprecated 
class deprecatedClass 

と私は、この非推奨クラスのリストを持っている

List<deprecatedClass> listOfDeperecatedClass 

だから私もこのリストの@Deprecatedのタグを追加する必要がありますか?


編集:@Deprecatedは資本を持っている必要があります 'D'。
参照:http://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html

答えて

3

はあなたのパブリックインターフェイスの一部としてList上の操作を持っていますか?その場合は、すべてのメソッドにdeprecatedとマークしてください。それ以外の場合は、うまくいくはずです。

2

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

0

と同じようにマーキング:

@Deprecated 
List<deprecatedClass> listOfDeperecatedClass 

は大丈夫であるべき。

4

いいえ、必要はありません。注釈@DeprecatedDeprecatedClassに追加すると、使用するたびに警告が生成されます。


あなたしかし、引数としてあなたの廃止予定のクラスを取るかだけでなく、非推奨として、それを返すクラスのメソッドをマーキングされて何をすべきか。これは、他のコードが非推奨クラスのインスタンスに対して持つ可能性のあるアクセスの場合に発生します—パブリックフィールド、定数など。これらはもちろん廃止されたカルルスのインスタンスがなくては使用できないので、警告はとにかく与えられますが、正しい廃止の注釈とコメントには、説明を提供して代替手段を指すようにしてください。貴重な情報はですが得られる。

メソッドシグネチャは契約と似ており、クラスシグネチャも同様です。あなたは、他のプログラマーにどのメソッドを呼び出すことができ、どのように呼び出すことができるかを伝えています。アクセス可能なフィールドを教えています。他のプログラマーは、そのコードに基づいています。その契約を破る必要がある場合は、まず、その契約の代替品(同じ機能を持つ新しい方法)を提供し、それらに伝え、その新しい契約に切り替える時間を与えなければなりません(古い方法とクラスを非難してください) 。

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

関連する問題