有人知道带有@Deprecated
注释的类是否意味着所有方法和字段都会被弃用。?
对于不推荐使用的类,eclipse并没有将方法显示为Deprecated
。
答案 0 :(得分:4)
没有。如果你这样做
@Deprecated
class Old {
public void foo () {}
}
您何时会引用该课程:
new
Old()。foo()
仅
旧
将被标记为已弃用。
答案 1 :(得分:3)
如果说我已使用VO
注释了课程@Deprecated
:
@Deprecated
class VO {
private String name ;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
然后:
VOv = new VO(); //警告
v.getName(); // no warning
这意味着该类已弃用。因此,使用该类型将显示警告。
答案 2 :(得分:1)
嗯,规范说明了这一点:
当使用注释@Deprecated注释声明的类型[..]时,Java编译器必须产生弃用警告(即,重写,调用或通过名称引用),[..]
所以严格来说调用不允许使用该类型的对象的方法不需要产生警告(因为“重写”和“调用”只能引用方法或构造函数和类没有引用名称)。 声明该对象,但必须提供警告。
但是,没有任何说明不允许编译器提供更多警告。在我看来,假设弃用类的所有方法都应被视为已弃用是合理的。