@Deprecated アノテーションを使用しようとしています。@Deprecated のドキュメントには、「非推奨のプログラム要素が非推奨のコードで使用またはオーバーライドされると、コンパイラは警告する」と記載されています。これがトリガーになるはずだと思いますが、そうではありませんでした。javac バージョン 1.7.0_09 であり、-Xlint および -deprecation を使用して、または使用せずにコンパイルされています。
public class TestAnnotations {
public static void main(String[] args)
{
TestAnnotations theApp = new TestAnnotations();
theApp.thisIsDeprecated();
}
@Deprecated
public void thisIsDeprecated()
{
System.out.println("doing it the old way");
}
}
編集:メソッドが別のクラスにある場合にのみ機能するという以下のgd1のコメントに従って、2番目のクラスを追加しました。そして、theOldWay() の呼び出しに対して警告を発します。
public class TestAnnotations {
public static void main(String[] args)
{
TestAnnotations theApp = new TestAnnotations();
theApp.thisIsDeprecated();
OtherClass thatClass = new OtherClass();
thatClass.theOldWay();
}
@Deprecated
public void thisIsDeprecated()
{
System.out.println("doing it the old way");
}
}
class OtherClass {
@Deprecated
void theOldWay()
{
System.out.println("gone out of style");
}
}
警告:
/home/java/TestAnnotations.java:10: 警告: [非推奨] OtherClass の theOldWay() は非推奨になりました
thatClass.theOldWay(); ^
1 件の警告