最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的instanceof關(guān)鍵字在Android中的用法實例詳解

 更新時間:2016年07月13日 11:39:35   作者:MrZhang_happy  
instanceof是Java的一個二元操作符,和==,>,<是同一類東西。接下來通過本文給大家介紹Java中的instanceof關(guān)鍵字在Android中的用法,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧

在下面介紹Android中如何使用instanceof關(guān)鍵字開發(fā)更方便時,先來溫習一下java中instanceof的概念。

instanceof大部分的概念是這樣定義的:instanceof是Java的一個二元操作符,和==,>,<是同一類東西。由于它是由字母組成的,所以也是Java的保留關(guān)鍵字。它的作用是測試它左邊的對象是否是它右邊的類的實例,返回boolean類型的數(shù)據(jù)。舉個栗子:

 String s = "I AM an Object!";
  boolean isObject = s instanceof Object;

  我們聲明了一個String對象引用,指向一個String對象,然后用instancof來測試它所指向的對象是否是Object類的一個實例,顯然,這是真的,所以返回true,也就是isObject的值為True。

  instanceof有一些用處。比如我們寫了一個處理賬單的系統(tǒng),其中有這樣三個類:

public class Bill {//省略細節(jié)}
  public class PhoneBill extends Bill {//省略細節(jié)}
  public class GasBill extends Bill {//省略細節(jié)}

  在處理程序里有一個方法,接受一個Bill類型的對象,計算金額。假設(shè)兩種賬單計算方法不同,而傳入的Bill對象可能是兩種中的任何一種,所以要用instanceof來判斷:

 public double calculate(Bill bill) {
  if (bill instanceof PhoneBill) {
  //計算電話賬單
  }
  if (bill instanceof GasBill) {
  //計算燃氣賬單
  }
  ...
  }

  這樣就可以用一個方法處理兩種子類。

  然而,這種做法通常被認為是沒有好好利用面向?qū)ο笾械亩鄳B(tài)性。其實上面的功能要求用方法重載完全可以實現(xiàn),這是面向?qū)ο笞兂蓱?yīng)有的做法,避免回到結(jié)構(gòu)化編程模式。只要提供兩個名字和返回值都相同,接受參數(shù)類型不同的方法就可以了:

public double calculate(PhoneBill bill) {
  //計算電話賬單
  }
  public double calculate(GasBill bill) {
  //計算燃氣賬單
  }

  所以,使用instanceof在絕大多數(shù)情況下并不是推薦的做法,應(yīng)當好好利用多態(tài)。

以上是我抄的,覺得寫的還不錯,簡介明了,就拿過來引用一下??梢钥闯?instanceof關(guān)鍵是就是用來判斷左邊的對象是否是右邊類的實例,如果是,就能處理下一步的邏輯。

在Android中,instanceof關(guān)鍵字常用來用在Fragment中調(diào)用Activity方法。比如說,你需要在Fragment中調(diào)用當前Activity中的某個方法,有的人說,那我直接重新寫一個不就是么?那要是有特殊的方法,fragment不支持呢?這時候就用到了instanceof,舉個栗子:

if( getActivity() instanceof IndexActivity) 
((IndexActivity) getActivity()).showccaidan(); 

上面兩行代碼中可以看出,如果當前這個Fragment 是IndexActivity的碎片時,那么久調(diào)用activity中的方法,調(diào)用之前必須強轉(zhuǎn)一下當前Activity。

其實不僅Fragment中能夠用到instanceof關(guān)鍵字,自定義的Adapter中也是可以用到的:

if(context instanceof CommodityWarningActivity){ 
holder.entName_ll.setVisibility(View.VISIBLE); 
holder.entName.setText(list.get(arg0).getStrCorporationName()); 
}else{ 
holder.entName_ll.setVisibility(View.GONE); 
}

context這個做android都應(yīng)該知道,context從字面意思是上下文,或者叫做場景,也就是用戶與操作系統(tǒng)操作的一個過程。(不是特么了解context可以先去看看資料)。所以說如果有context地方需要的話都可以使用instanceof關(guān)鍵字。

以上所述是小編給大家介紹的Java中的instanceof關(guān)鍵字在Android中的用法實例詳解,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • idea如何配置springboot熱部署

    idea如何配置springboot熱部署

    文章介紹了如何在不同版本的IntelliJ IDEA中配置靜態(tài)和動態(tài)編譯,并提供了觸發(fā)熱部署的方法
    2025-01-01
  • SSH原理及兩種登錄方法圖文詳解

    SSH原理及兩種登錄方法圖文詳解

    SSH(Secure Shell)是一套協(xié)議標準,可以用來實現(xiàn)兩臺機器之間的安全登錄以及安全的數(shù)據(jù)傳送,其保證數(shù)據(jù)安全的原理是非對稱加密。本文通過圖文并茂的形式給大家介紹了SSH原理及兩種登錄方法,一起看看吧
    2018-08-08
  • Spring boot中使用ElasticSearch的方法詳解

    Spring boot中使用ElasticSearch的方法詳解

    這篇文章主要給大家介紹了關(guān)于Spring boot中使用ElasticSearch的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • java?Semaphore共享鎖實現(xiàn)原理解析

    java?Semaphore共享鎖實現(xiàn)原理解析

    這篇文章主要為大家介紹了Semaphore共享鎖實現(xiàn)原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • springmvc+spring+mybatis實現(xiàn)用戶登錄功能(下)

    springmvc+spring+mybatis實現(xiàn)用戶登錄功能(下)

    這篇文章主要為大家詳細介紹了springmvc+spring+mybatis實現(xiàn)用戶登錄功能的第二篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Spring Boot詳解各類請求和響應(yīng)的處理方法

    Spring Boot詳解各類請求和響應(yīng)的處理方法

    平時只是在用SpringBoot框架,但并沒有詳細研究過請求和響應(yīng)執(zhí)行的一個具體過程,所以本文主要來梳理一下SpringBoot請求和響應(yīng)的處理過程
    2022-07-07
  • Java使用反射來獲取泛型信息示例

    Java使用反射來獲取泛型信息示例

    這篇文章主要介紹了Java使用反射來獲取泛型信息,結(jié)合實例形式分析了java基于反射操作泛型信息的相關(guān)實現(xiàn)技巧與注意事項,需要的朋友可以參考下
    2019-07-07
  • Spring Security異步無法獲取用戶認證信息的解決方法

    Spring Security異步無法獲取用戶認證信息的解決方法

    最近使用 Springboot 中 @Async 注解異步調(diào)用方法時,發(fā)現(xiàn)無法獲取到用戶認證信息,本文小編給大家介紹了Spring Security異步無法獲取用戶認證信息的原因和解決方法,并通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • Java利用遞歸算法實現(xiàn)查詢斐波那契數(shù)

    Java利用遞歸算法實現(xiàn)查詢斐波那契數(shù)

    今天小編就為大家分享一篇關(guān)于Java利用遞歸算法實現(xiàn)查詢斐波那契數(shù),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 使用@Autowired注解有錯誤提示的解決

    使用@Autowired注解有錯誤提示的解決

    這篇文章主要介紹了使用@Autowired注解有錯誤提示的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論

若羌县| 英超| 于田县| 尉氏县| 台东市| 咸丰县| 淮安市| 正宁县| 辽宁省| 丹东市| 凌海市| 鄂伦春自治旗| 喀喇| 濮阳县| 江达县| 长治县| 彰武县| 松阳县| 罗甸县| 绵阳市| 孝昌县| 尉氏县| 肇东市| 绥滨县| 东港市| 华阴市| 贡觉县| 邹平县| 钟祥市| 铜鼓县| 和林格尔县| 重庆市| 得荣县| 宁陵县| 称多县| 新乡县| 丹凤县| 祁门县| 东城区| 广饶县| 开封县|