我正在尝试使用@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 的评论,它仅在该方法在另一个类中时才有效,我添加了第二个类。它确实在调用 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:警告:[deprecation] OtherClass 中的 theOldWay() 已被弃用
thatClass.theOldWay(); ^
1 个警告