@Deprecated
注釈付きのクラスがすべてのメソッドとフィールドが自動的に非推奨になることを意味するかどうかは誰にもわかりません..?
少なくとも、Eclipse は非Deprecated
推奨クラスのメソッドを表示していません。
@Deprecated
注釈付きのクラスがすべてのメソッドとフィールドが自動的に非推奨になることを意味するかどうかは誰にもわかりません..?
少なくとも、Eclipse は非Deprecated
推奨クラスのメソッドを表示していません。
いいえ。
@Deprecated
class Old {
public void foo () {}
}
そのクラスをいつ参照するか:
新着
年().foo()
それだけ
年
非推奨としてマークされます。
クラスに次のアノテーションを付けたVO
とし@Deprecated
ます。
@Deprecated
class VO {
private String name ;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
それで :
VOv = 新しい VO(); //ここで警告
v.getName(); // no warning
クラスが非推奨であることを意味します。したがって、そのタイプを使用すると警告が表示されます。
さて、仕様には次のように書かれています。
Java コンパイラは、宣言に @Deprecated アノテーションが付けられた型 [..] が使用された場合 (つまり、オーバーライド、呼び出し、または名前で参照された場合)、[..] 非推奨警告を生成する必要があります。
したがって、厳密に言えば、型が非推奨のオブジェクトでメソッドを呼び出しても、警告を生成する必要はありません (「オーバーライド」および「呼び出し」は、メソッドまたはコンストラクターのみを参照でき、クラスは名前で参照されないため)。ただし、そのオブジェクトを宣言すると、警告が表示される必要があります。
ただし、コンパイラがこれ以上警告を出すことを許可されていないということは何もありません。そして私の意見では、非推奨クラスのすべてのメソッドは非推奨と見なされるべきであると想定するのが合理的です。