程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中的instanceof症結字在Android中的用法實例詳解

Java中的instanceof症結字在Android中的用法實例詳解

編輯:關於JAVA

Java中的instanceof症結字在Android中的用法實例詳解。本站提示廣大學習愛好者:(Java中的instanceof症結字在Android中的用法實例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中的instanceof症結字在Android中的用法實例詳解正文


鄙人面引見Android中若何應用instanceof症結字開辟更便利時,先來復習一下java中instanceof的概念。

instanceof年夜部門的概念是如許界說的:instanceof是Java的一個二元操作符,和==,>,<是統一類器械。因為它是由字母構成的,所以也是Java的保存症結字。它的感化是測試它右邊的對象能否是它左邊的類的實例,前往boolean類型的數據。舉個栗子:

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

  我們聲清楚明了一個String對象援用,指向一個String對象,然後用instancof來測試它所指向的對象能否是Object類的一個實例,明顯,這是真的,所以前往true,也就是isObject的值為True。

  instanceof有一些用途。好比我們寫了一個處置賬單的體系,個中有如許三個類:

public class Bill {//省略細節}
  public class PhoneBill extends Bill {//省略細節}
  public class GasBill extends Bill {//省略細節}

  在處置法式裡有一個辦法,接收一個Bill類型的對象,盤算金額。假定兩種賬單盤算辦法分歧,而傳入的Bill對象能夠是兩種中的任何一種,所以要用instanceof來斷定:

 public double calculate(Bill bill) {
  if (bill instanceof PhoneBill) {
  //盤算德律風賬單
  }
  if (bill instanceof GasBill) {
  //盤算燃氣賬單
  }
  ...
  }

  如許便可以用一個辦法處置兩種子類。

  但是,這類做法平日被以為是沒有好好應用面向對象中的多態性。其實下面的功效請求用辦法重載完整可以完成,這是面向對象釀成應有的做法,防止回到構造化編程形式。只需供給兩個名字和前往值都雷同,接收參數類型分歧的辦法便可以了:

public double calculate(PhoneBill bill) {
  //盤算德律風賬單
  }
  public double calculate(GasBill bill) {
  //盤算燃氣賬單
  }

  所以,應用instanceof在絕年夜多半情形下其實不是推舉的做法,應該好好應用多態。

以上是我抄的,認為寫的還不錯,簡介清楚明了,就拿過去援用一下。可以看出 instanceof症結是就是用來斷定右邊的對象能否是左邊類的實例,假如是,就可以處置下一步的邏輯。

在Android中,instanceof症結字經常使用來用在Fragment中挪用Activity辦法。好比說,你須要在Fragment中挪用以後Activity中的某個辦法,有的人說,那我直接從新寫一個不就是麼?那如果有特別的辦法,fragment不支撐呢?這時候候就用到了instanceof,舉個栗子:

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

下面兩行代碼中可以看出,假如以後這個Fragment 是IndexActivity的碎片時,那末久挪用activity中的辦法,挪用之前必需強轉一下以後Activity。

其實不只Fragment中可以或許用到instanceof症結字,自界說的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都應當曉得,context從字面意思是高低文,或許叫做場景,也就是用戶與操作體系操作的一個進程。(不是特麼懂得context可以先去看看材料)。所以說假如有context處所須要的話都可使用instanceof症結字。

以上所述是小編給年夜家引見的Java中的instanceof症結字在Android中的用法實例詳解,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved