在我從一個界面上刪除未使用的方法,和預期的javac和Eclipse抱怨的事實,我的實現類仍然聲稱覆蓋它:如何強制Java編譯錯誤,如果@Override是不必要
@Override
public void thisMethodNoLongerOverridesAnything() {}
但是,我沒有收到錯誤甚至是警告。
在這種情況下,有沒有辦法配置javac或Eclipse來投訴?
在我從一個界面上刪除未使用的方法,和預期的javac和Eclipse抱怨的事實,我的實現類仍然聲稱覆蓋它:如何強制Java編譯錯誤,如果@Override是不必要
@Override
public void thisMethodNoLongerOverridesAnything() {}
但是,我沒有收到錯誤甚至是警告。
在這種情況下,有沒有辦法配置javac或Eclipse來投訴?
如果一個方法與此註釋類型編譯註釋是 需要產生一個錯誤消息除非的 以下條件中的至少一個成立:
- 該方法重寫或實現在超類型中聲明的方法。
- 該方法的簽名與在Object中聲明的任何公用方法的簽名相同。
因此,無論你的評判仍然會覆蓋的東西,或者你發現在javac和Eclipse的一個bug,我懷疑。
錯誤肯定會出現。
interface A void funA(); }
class Test implements A{
@Override
public void funA(){
}
@Override
public void B(){
}
}
錯誤:方法B()類型的測試必須重寫或實現的超類型方法
Sugessions: create B() in supertype A
remove Override annotation
在Eclipse:
Properties > Java Compiler > Errors/Warnings
的@Override
註釋是下Annotations
並且在默認情況下被忽略。
編輯:只是重新閱讀這個問題。如果您有不必要的@Override
,而您錯過了它,則希望收到警告。
如果您使用的是JDK 1.5,則忽略@Override註釋。
看看this( - >也可以將eclipse首選項中的JDK合規性設置爲1.5)。
我認爲它更可能只是一個在日食中的錯誤,沒有任何暗示必須是兩個錯誤。如果我手動編譯它,那麼它會正確報告錯誤。 – GripnRip 2012-04-05 16:07:46