轉載自:http://blog.sina.com.cn/s/blog_9c7605530101kl9r.html
一、java @override 報錯處理
做項目的時候,同事那邊電腦上編譯通過的java代碼,或者是網上下載的樣例代碼,導入工程后卻是編譯不通過,總是@override報錯,把@override去掉就好了,有時候@Override出現的地方很多,要全部刪除@Override很繁瑣很吐血,不能從根本上解決問題。網上找了一下原因,才知道:
Android的開發者對@Override肯定是非常熟悉,不管是自己的代碼中還是書上都會出現,但是他是什么意思呢?如下:
@Override是偽代碼,表示重寫(當然不寫也可以),不過寫上有如下好處:
1、可以當注釋用,方便閱讀
2、編譯器可以給你驗證@Override下面的方法名是否是你父類中所有的,如果沒有則報錯比如你如果沒寫@Override而你下面的方法名又寫錯了,這時你的編譯器是可以通過的(它以為這個方法是你的子類中自己增加的方法)
example:
在重寫父類的onCreate時,在方法前面加上@Override系統可以幫你檢查方法的正確性。例如:
public void onCreate(BundlesavedInstanceState){…….}
這種寫法是正確的,如果你寫成
public void oncreate(BundlesavedInstanceState){…….}
這樣編譯器會報如下錯誤——
Themethodoncreate(Bundle)oftypeHelloWorldmustoverrideorimplementasupertypemethod,
以確保你正確重寫onCreate方法。(因為oncreate應該為onCreate)
而如果你不加@Override,則編譯器將不會檢測出錯誤,而是會認為你新定義了一個方法oncreate。