我必须删除@Override注释吗?

nam*_*olk 3 java annotations

以下代码在附近发出错误 public void control() {.

EClipse还提供了一个提示,可以删除@Override注释.我去了docs.oracle,发现如果用@Override 标记的方法无法正确覆盖其中一个超类中的方法,编译器会生成错误.

我不明白"无法​​正确覆盖"是什么意思?

public class PersistenceFlowController implements controllers.FlowController {
   @Override
   public void control() {
      // Do some works here
   }
}


package controllers;
public interface FlowController {   
   void control();  
}
Run Code Online (Sandbox Code Playgroud)

Ern*_*ill 18

在JDK 1.5中,@Override只能应用于父类的方法.在JDK 1.6及更高版本中,它也可以用于接口方法.我的猜测是你已经为JDK 1.5编译器合规设置了Eclipse.您可以在项目属性对话框的"Java编译器"选项卡中检查或更改此设置.

  • 是的.你的猜测是完全正确的Emest.非常好. (2认同)