1、java @override 報錯處理java
作項目的時候,同事那邊電腦上編譯經過的java代碼,或者是網上下載的樣例代碼,導入工程後倒是編譯不經過,老是@override報錯,把@override去掉就行了,有時候@Override出現的地方不少,要所有刪除@Override很繁瑣很吐血,不能從根本上解決問題。網上找了一下緣由,才知道:eclipse
聽說這是jdk的問題,@Override是JDK5就已經有了,但有個小小的Bug,就是不支持對接口的實現,認爲這不是Override 而JDK6修正了這個Bug,不管是對父類的方法覆蓋仍是對接口的實現均可以加上@Override。ide
首先要確保安裝了jdk 1.6,spa
而後,在eclipse中修改配置,在 Windows->Preferences-->java->Compiler-->compiler compliance level 中選擇 1.6,刷新工程,從新編譯下;接口
若是仍是不行,就在報錯的工程上,鼠標右鍵選擇 Properties-->Java Compiler-->compiler compliance level中選擇 1.6,刷新工程,從新編譯下。ip
2、Android之@Override詳解 開發
Android的開發者對@Override確定是很是熟悉,無論是本身的代碼中仍是書上都會出現,可是他是什麼意思呢?以下:
@Override是僞代碼,表示重寫(固然不寫也能夠),不過寫上有以下好處:
一、能夠當註釋用,方便閱讀
二、編譯器能夠給你驗證@Override下面的方法名是不是你父類中全部的,若是沒有則報錯好比你若是沒寫@Override而你下面的方法名又寫錯了,這時你的編譯器是能夠經過的(它覺得這個方法是你的子類中本身增長的方法)
example:編譯器
在重寫父類的onCreate時,在方法前面加上@Override系統能夠幫你檢查方法的正確性。例如:編譯
public void onCreate(BundlesavedInstanceState){…….}
這種寫法是正確的,若是你寫成
public void oncreate(BundlesavedInstanceState){…….}
這樣編譯器會報以下錯誤——
Themethodoncreate(Bundle)oftypeHelloWorldmustoverrideorimplementasupertypemethod,
以確保你正確重寫onCreate方法。(由於oncreate應該爲onCreate)
而若是你不加@Override,則編譯器將不會檢測出錯誤,而是會認爲你新定義了一個方法oncreate。cli