我已经从接口中删除了一个未使用的方法,并期望 javac 和 Eclipse 抱怨我的实现类仍然声称要覆盖它:
@Override
public void thisMethodNoLongerOverridesAnything() {}
但是,我没有收到错误甚至警告。
在这种情况下,有没有办法配置 javac 或 Eclipse 来抱怨?
如果使用此注解类型对方法进行注解,则编译器 需要生成错误消息,除非至少满足以下条件之一:
- 该方法确实覆盖或实现了在超类型中声明的方法。
- 该方法的签名与 Object 中声明的任何公共方法的签名等效。
因此,要么您的方法仍然覆盖某些东西,要么您在 javac 和 eclipse 中都发现了一个错误,我对此表示怀疑。
如果您使用的是 JDK 1.5,则忽略 @Override 注释。
看看这个(->也可以是eclipse首选项中的JDK Compliance设置为1.5)。
错误肯定会出现。
接口 A{ 无效 funA(); }
class Test implements A{
@Override
public void funA(){
}
@Override
public void B(){
}
}
错误:Test 类型的方法 B() 必须覆盖或实现超类型方法
Sugessions: create B() in supertype A
remove Override annotation
在 Eclipse 中:
Properties > Java Compiler > Errors/Warnings
默认情况下,@Override
注释处于下方Annotations
并被忽略。
编辑:只需重新阅读问题。如果你有不必要的东西,你想得到警告,@Override
而不是在你错过它时得到警告。