实现接口时@Override注解问题
??用IntelliJ 15打開一個以前的工程,發(fā)現(xiàn)代碼出現(xiàn)很多關(guān)于@Override的錯誤,編輯器提示:“@Override is not allowed when implementing interface method”,怎么會這樣子?看來@Override是個有故事的家伙,呵呵!
??先來上張圖吧!看看到底是什么樣子的錯誤。
?
??下面我們來分析一下該問題。我們都知道@Override從jdk1.5開始出現(xiàn)的,是用來標(biāo)注方法重寫的。通常方法重寫發(fā)生在繼承父類,重寫父類方法,或者實(shí)現(xiàn)接口,實(shí)現(xiàn)接口方法。@Override能夠保證你正確重寫方法,當(dāng)你重寫方法出錯時,比如方法名誤寫,或者漏掉參數(shù),編譯器會提示編譯錯誤。
??出現(xiàn)以上問題,則跟編譯器版本問題有關(guān)。編譯器1.5只支持@Override注釋重寫父類方法,不支持實(shí)現(xiàn)接口方法。而我的IDE默認(rèn)使用jdk1.5的編譯器。
?
??我們只需要將language level設(shè)置高于jdk1.5版本即可,因為我機(jī)器安裝的是jdk1.7,所以我將language level設(shè)置為:jdk1.7,問題解決。
?
??IntelliJ設(shè)置方法:菜單File → Project Structure → Project Language Level
??Eclipse設(shè)置方法:菜單Windows->Preferences-->java->Compiler-->compiler compliance level
總結(jié)
以上是生活随笔為你收集整理的实现接口时@Override注解问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gulp 常用插件汇总
- 下一篇: 在linux下玩转usb摄像头