有人知道带@Deprecated
注释的类是否意味着所有方法和字段都会自动被弃用..?
至少 eclipse 没有显示Deprecated
Deprecated 类的方法。
有人知道带@Deprecated
注释的类是否意味着所有方法和字段都会自动被弃用..?
至少 eclipse 没有显示Deprecated
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
这意味着该类已被弃用。因此,使用该类型将显示警告。
好吧,规范是这样说的:
当一个类型 [..] 的声明被注释 @Deprecated 被使用(即被名称覆盖、调用或引用)时,Java 编译器必须产生一个弃用警告,[..]
所以严格来说,在不推荐使用类型的对象上调用方法不需要产生警告(因为“覆盖”和“调用”只能引用方法或构造函数,并且类不被名称引用)。但是,声明该对象必须提供警告。
但是,没有什么说不允许编译器提供更多警告。在我看来,可以合理地假设已弃用类的所有方法都应被视为已弃用。