2012-03-14 83 views
3

以下代码给出了public void control() {附近的错误。我必须删除@Override注释吗?

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(); 
} 
+0

在标题中指定精确的错误消息,并以简短的形式在帖子中指定长表单。也搜索这样的错误信息。 – 2012-03-14 04:55:28

+0

啊!我只是把它作为以前检查匹配的问题。在发布之前忘了编辑。我的坏朋友! Thanx提 – namalfernandolk 2012-03-14 05:02:26

回答

18

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

+2

是的。你的猜测是完全正确的Emest。非常感谢。 – namalfernandolk 2012-03-14 04:50:20