實現接口時@Override註解問題

用IntelliJ 15打開一個之前的工程,發現代碼出現不少關於@Override的錯誤,編輯器提示:「@Override is not allowed when implementing interface method」,怎麼會這樣子?看來@Override是個有故事的傢伙,呵呵! php

  先來上張圖吧!看看究竟是什麼樣子的錯誤。 java



  下面咱們來分析一下該問題。咱們都知道@Override從jdk1.5開始出現的,是用來標註方法重寫的。一般方法重寫發生在繼承父類,重寫父類方法,或者實現接口,實現接口方法。@Override可以保證你正確重寫方法,當你重寫方法出錯時,好比方法名誤寫,或者漏掉參數,編譯器會提示編譯錯誤。
  出現以上問題,則跟編譯器版本問題有關。編譯器1.5只支持@Override註釋重寫父類方法,不支持實現接口方法。而個人IDE默認使用jdk1.5的編譯器。 編輯器

  咱們只須要將language level設置高於jdk1.5版本便可,由於我機器安裝的是jdk1.7,因此我將language level設置爲:jdk1.7,問題解決。 ide

  IntelliJ設置方法:菜單File → Project Structure → Project Language Level
  Eclipse設置方法:菜單Windows->Preferences-->java->Compiler-->compiler compliance level .net

文章做者: admin
本文連接: http://javatech.wang/index.php/archives/37/ 版本全部 ©轉載時必須以連接形式註明做者和原始出處
相關文章
相關標籤/搜索