1. 程式人生 > >idea中的實現介面時@Override註解問題

idea中的實現介面時@Override註解問題

用IntelliJ 15開啟一個以前的工程,發現程式碼出現很多關於@Override的錯誤,編輯器提示:“@Override is not allowed when implementing interface method”,怎麼會這樣子?看來@Override是個有故事的傢伙,呵呵!

  先來上張圖吧!看看到底是什麼樣子的錯誤。


 

  下面我們來分析一下該問題。我們都知道@Override從jdk1.5開始出現的,是用來標註方法重寫的。通常方法重寫發生在繼承父類,重寫父類方法,或者實現介面,實現介面方法。@Override能夠保證你正確重寫方法,當你重寫方法出錯時,比如方法名誤寫,或者漏掉引數,編譯器會提示編譯錯誤。
  出現以上問題,則跟編譯器版本問題有關。編譯器1.5只支援@Override註釋重寫父類方法,不支援實現介面方法。而我的IDE預設使用jdk1.5的編譯器。

  我們只需要將language level設定高於jdk1.5版本即可,因為我機器安裝的是jdk1.7,所以我將language level設定為:jdk1.7,問題解決。

  IntelliJ設定方法:選單File → Project Structure → Project Language Level
  Eclipse設定方法:選單Windows->Preferences-->java->Compiler-->compiler compliance level