2012-03-14 112 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