日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android @Override详解

發布時間:2024/1/18 Android 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android @Override详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自 ?Android @Override詳解

 Android的開發者對@Override肯定是非常熟悉,不管是自己的代碼中還是書上都會出現,但是他是什么意思呢?如下:
  @Override是偽代碼,表示重寫(當然不寫也可以),不過寫上有如下好處:
??? 1、可以當注釋用,方便閱讀
??? 2、編譯器可以給你驗證@Override下面的方法名是否是你父類中所有的,如果沒有則報錯比如你如果沒寫@Override而你下面的方法名又寫錯了,這時你的編譯器是可以通過的(它以為這個方法是你的子類中自己增加的方法)
  example:

  在重寫父類的onCreate時,在方法前面加上@Override系統可以幫你檢查方法的正確性。例如:

  public void onCreate(BundlesavedInstanceState){…….}
  這種寫法是正確的,如果你寫成
  public void oncreate(BundlesavedInstanceState){…….}
  這樣編譯器會報如下錯誤——
  The method oncreate(Bundle) of type HelloWorld must override or implement a super type method,
  以確保你正確重寫onCreate方法。(因為oncreate應該為onCreate)
  而如果你不加@Override,則編譯器將不會檢測出錯誤,而是會認為你新定義了一個方法oncreate。
  

現象:

... java: 1801: method does not override a method from its superclass @Override...

原因:

Eclipse is defaulting to Java 1.5 and you have classes implementing interface methods (which in Java 1.6 can be annotated with @Override, but in Java 1.5 can only be applied to methods overriding a superclass method).

就是說Java 1.5的編譯器默認對父類的方法進行覆蓋,采用@Override進行說明;但1.6已經擴展到對接口的方法;所以如果還是以Java 1.5的編譯器來編譯的話,會出現錯誤。

解決方案:

Go to your project/ide preferences and set the java compiler level to 1.6 and also make sure you select JRE 1.6 to execute your program from eclipse.

java的編譯器是1.6版本的,選擇編譯級別為1.6,但重要的一點是,選擇build的android庫是1.5的即可,生成的apk程序是可以在1.5內核上跑起來。

總的來講: android sdk的版本與Java JRE的版本可以配置起來用,兩者關系應該是疏松的,有高人可以指點錯誤。

?

1、Android里有一些系統自動調用的回調函數CallbackMethods,如果寫的程序運行無錯,但是就是沒有該有的反應,那就可能是覆寫回調函數時沒有加@Override且函數名寫錯了。2、覆寫的函數最好 加上@Override。3、可以在Source-> Override/Implement Methods下自動添加覆寫和接口函數,可以確保函數名拼寫正確。


總結

以上是生活随笔為你收集整理的Android @Override详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。