在實現接口(interface)的時候,使用@Override這個註解會致使報錯,錯誤提示:The method xx(xxxxx) of type xxxxx must override a superclass method java
jdk1.5下要使用@Override這個註解必須保證被標註方法來源於class而不是interface,也就是說,在jdk1.5下,實現interface的方法是不支持使用@Override這個註解的,驗證代碼以下: eclipse
public class OverrideTest { public abstract class ParentClass { public abstract void test(); } ParentClass pc = new ParentClass() { @Override public void test() { // 沒有報錯 } }; public interface ParentInterface { public void test(); }; ParentInterface pi = new ParentInterface() { @Override public void test() { // 報錯 } }; }
一、把接口實現方法使用的@Override所有刪除(若是有N多個@Override的話,我以爲 ... ^_^); ide
二、修改編譯的jdk版本(比較省時,省力的方式): spa
目前這個問題在jdk1.6以上版本都作了修改,全部把jdk改成1.6以上版本就OK了,針對我使用的Eclipse修改java編譯器爲jdk1.6方式以下: code
(1) 首先要確保機器上安裝了jdk 1.6; 接口
(2) 選擇eclipse菜單Windows->Preferences-->java->Compiler-->compiler compliance level選擇 1.6,刷新工程,從新編譯; ip
(3) 若是問題還沒解決,就在報錯的工程上,鼠標右鍵選擇 Properties-->Java Compiler-->compiler compliance level 中選擇 1.6,刷新工程,從新編譯。 編譯器