, "/>

国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java中的instanceof關鍵字在Android中的用法實例詳解

Java中的instanceof關鍵字在Android中的用法實例詳解

2020-05-27 11:25MrZhang_happy JAVA教程

instanceof是Java的一個二元操作符,和==,>,<是同一類東西。接下來通過本文給大家介紹Java中的instanceof關鍵字在Android中的用法,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧

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

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

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

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

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

?
1
2
3
public class Bill {//省略細節}
  public class PhoneBill extends Bill {//省略細節}
  public class GasBill extends Bill {//省略細節}

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

?
1
2
3
4
5
6
7
8
9
public double calculate(Bill bill) {
 if (bill instanceof PhoneBill) {
 //計算電話賬單
 }
 if (bill instanceof GasBill) {
 //計算燃氣賬單
 }
 ...
 }

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

  然而,這種做法通常被認為是沒有好好利用面向對象中的多態性。其實上面的功能要求用方法重載完全可以實現,這是面向對象變成應有的做法,避免回到結構化編程模式。只要提供兩個名字和返回值都相同,接受參數類型不同的方法就可以了:

?
1
2
3
4
5
6
public double calculate(PhoneBill bill) {
  //計算電話賬單
  }
  public double calculate(GasBill bill) {
  //計算燃氣賬單
  }

  所以,使用instanceof在絕大多數情況下并不是推薦的做法,應當好好利用多態。

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

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

?
1
2
if( getActivity() instanceof IndexActivity)
((IndexActivity) getActivity()).showccaidan();

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

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

?
1
2
3
4
5
6
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中的用法實例詳解,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.csdn.net/mrzhang_happy/article/details/50462868

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲一区二区三区在线 | 日韩精品 电影一区 亚洲 | 日韩av在线影院 | 国产区视频在线观看 | 精品伊人久久 | 亚洲电影一区二区 | 一级片 | 91免费黄色片 | 色婷婷精品 | 婷婷久久五月天 | 中文字幕在线观看av | 亚洲综合自拍 | 91免费在线 | 国产一区二区三区免费看 | 99精品欧美一区二区三区综合在线 | 成人精品在线 | 欧美日韩国产一区二区 | 爆操av| 日本一区二区免费在线观看 | 久久久婷婷一区二区三区不卡 | 精品久久久久久久久久久久 | 亚洲成人精品在线观看 | 成人影院在线 | 黑人av| 日本在线视频一区二区 | 亚洲高清电影 | 九色91| 在线国产小视频 | 日韩不卡一区 | 午夜精品一区 | 久久久久国产精品免费免费搜索 | 免费污污视频在线观看 | 久久懂色精品99综一区合 | 91色在线 | 国产精品亚洲视频 | 91精品国产色综合久久不卡蜜臀 | 国产精品毛片久久久久久久明星 | 99精品国产一区二区三区 | 亚洲成人一区二区三区四区 | a国产精品 | 中文字幕在线精品 |