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

java中的instanceof關(guān)鍵字詳細解讀

 更新時間:2024年01月19日 10:04:54   作者:CUIYD_1989  
這篇文章主要介紹了java中的instanceof關(guān)鍵字詳細解讀,instanceof 是 Java 的保留關(guān)鍵字,它的作用是測試它左邊的對象是否是它右邊的類的實例,返回 boolean 的數(shù)據(jù)類型,需要的朋友可以參考下

instanceof關(guān)鍵字

instanceof 是 Java 的保留關(guān)鍵字,它的作用是測試它左邊的對象是否是它右邊的類的實例,返回 boolean 的數(shù)據(jù)類型。

代碼中可能遇到的情況:

1、基本數(shù)據(jù)類型

在這里插入圖片描述

如上圖,這種情況會報錯。將右邊的類型改為引用類型:

在這里插入圖片描述

依舊報錯,改成特殊的null:

在這里插入圖片描述

依舊報錯,由此得出:基本類型不能用于 instanceof 判斷。

為了驗證這一點,換一個基本數(shù)據(jù)類型double進行測試:

在這里插入圖片描述

依舊報錯,可以驗證結(jié)論正確。

2、引用類型

創(chuàng)建如下關(guān)系的類和接口:

在這里插入圖片描述

在這里插入圖片描述

測試一:

public static void main(String[] args) {
        Dog dog = new Dog();
        Animal animal = new Animal();
        Animal cat = new Cat();
        System.out.println("dog instanceof Dog的結(jié)果是:" + (dog instanceof Dog));     // true
        System.out.println("dog instanceof Big的結(jié)果是:" + (dog instanceof Big));    // true
        System.out.println("animal instanceof Big的結(jié)果是:" + (animal instanceof Big)); // true
        System.out.println("animal instanceof Dog的結(jié)果是:" + (animal instanceof Dog));  // false
        System.out.println("cat instanceof Animal的結(jié)果是:" + (cat instanceof Animal));  // true
        System.out.println("cat instanceof Cat的結(jié)果是:" + (cat instanceof Cat));     // true
    }

打印結(jié)果:

dog instanceof Dog的結(jié)果是:true
dog instanceof Big的結(jié)果是:true
animal instanceof Big的結(jié)果是:true
animal instanceof Dog的結(jié)果是:false
cat instanceof Animal的結(jié)果是:true
cat instanceof Cat的結(jié)果是:true

測試二:

在這里插入圖片描述

  • 基本類型完全不能用于 instanceof 判斷
  • null 只能放在 instanceof 關(guān)鍵字的左邊

3、數(shù)組類型

延續(xù)引用類型示例,可以得到數(shù)組類型用來判斷時的情況:

  Dog[] dog = new Dog[3];
Animal animal = new Animal();
System.out.println("dog instanceof Dog[]的打印結(jié)果是:"+(dog instanceof Dog[]));   
System.out.println("dog instanceof Big[]的打印結(jié)果是:"+(dog instanceof Big[])); 

打印結(jié)果:

dog instanceof Dog[]的打印結(jié)果是:true
dog instanceof Big[]的打印結(jié)果是:true

特別地,基本類型的數(shù)組也是可以用來判斷的:

int[] arr = new int[3];
System.out.println("arr instanceof int[]的打印結(jié)果是:"+(arr instanceof int[]));

打印結(jié)果:

arr instanceof int[]的打印結(jié)果是:true

4、應(yīng)用場景

instanceof 關(guān)鍵字一般用于強制轉(zhuǎn)換,在強轉(zhuǎn)之前用它來判斷是否可以強制轉(zhuǎn)換:

/**
 *========================================
 * @方法說明 : 空判斷 空返回true
 * @param   obj
 * @return      boolean
 * @exception
 *========================================
 */
public static boolean isEmpty(Object obj) {
    if (obj == null || "null".equals(obj.toString()) || "".equals(obj.toString())) {
        return true;
    }
    if (obj instanceof String) {
        return ((String) obj).trim().length() == 0;
    }
    if (obj instanceof Collection) {
        return ((Collection) obj).isEmpty();
    }
    if (obj instanceof Map) {
        return ((Map) obj).isEmpty();
    }
    return false;
}

到此這篇關(guān)于java中的instanceof關(guān)鍵字詳細解讀的文章就介紹到這了,更多相關(guān)instanceof關(guān)鍵字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的八種基本數(shù)據(jù)類型詳解

    Java中的八種基本數(shù)據(jù)類型詳解

    本文詳細講解了Java中的八種基本數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Java運算符與流程控制之全類型運算符用法及分支?/?循環(huán)語句實戰(zhàn)指南

    Java運算符與流程控制之全類型運算符用法及分支?/?循環(huán)語句實戰(zhàn)指南

    這篇文章主要介紹了Java運算符與流程控制之全類型運算符用法及分支/循環(huán)語句實戰(zhàn)的相關(guān)資料,運算符包括算術(shù)、關(guān)系、邏輯、賦值和三元運算符,重點講解了它們的用法、優(yōu)先級和結(jié)合性,以及強制類型轉(zhuǎn)換的注意事項,需要的朋友可以參考下
    2026-01-01
  • spring/springboot整合curator遇到的坑及解決

    spring/springboot整合curator遇到的坑及解決

    這篇文章主要介紹了spring/springboot整合curator遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 關(guān)于java中多個JDK和切換版本介紹

    關(guān)于java中多個JDK和切換版本介紹

    大家好,本篇文章主要講的是關(guān)于java中多個JDK和切換版本介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • JSP 開發(fā)之hibernate的hql查詢多對多查詢

    JSP 開發(fā)之hibernate的hql查詢多對多查詢

    這篇文章主要介紹了JSP 開發(fā)之hibernate的hql查詢多對多查詢的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • Maven排除依賴和可選依賴的使用方法

    Maven排除依賴和可選依賴的使用方法

    我們知道Maven依賴具有傳遞性,例如A依賴于B,B依賴于C,在不考慮依賴范圍等因素的情況下,Maven會根據(jù)依賴傳遞機制,將間接依賴C 引入到A中,但如果A出于某種原因,希望將間接依賴C排除,那該怎么辦呢,Maven為用戶提供了兩種解決方式排出和可選
    2023-06-06
  • java中MultipartFile類型轉(zhuǎn)為File類型的4種方法

    java中MultipartFile類型轉(zhuǎn)為File類型的4種方法

    Spring提供了一個MultipartFile接口來處理文件上傳,但有時候我們需要將MultipartFile轉(zhuǎn)換為File來進行一些特定的操作,比如保存文件到本地或者進行文件的處理等,這篇文章主要給大家介紹了關(guān)于java中MultipartFile類型轉(zhuǎn)為File類型的4種方法,需要的朋友可以參考下
    2024-09-09
  • 在CentOS7(有圖形化界面)上安裝maven和idea的詳細教程

    在CentOS7(有圖形化界面)上安裝maven和idea的詳細教程

    這篇文章主要介紹了在CentOS7(有圖形化界面)上安裝maven和idea的詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 深入理解Java之HashMap源碼剖析

    深入理解Java之HashMap源碼剖析

    這篇文章主要介紹了深入理解Java之HashMap源碼剖析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 理解Java的序列化與反序列化

    理解Java的序列化與反序列化

    這篇文章主要為大家詳細介紹了Java的序列化與反序列化,序列化是一種對象持久化的手段。普遍應(yīng)用在網(wǎng)絡(luò)傳輸、RMI等場景中。本文通過分析ArrayList的序列化來介紹Java序列化的相關(guān)內(nèi)容,感興趣的小伙伴們可以參考一下
    2016-02-02

最新評論

万荣县| 阜宁县| 罗江县| 杭锦后旗| 西充县| 赞皇县| 中山市| 安泽县| 绥棱县| 霸州市| 玉屏| 偏关县| 海晏县| 南投市| 湟源县| 三亚市| 吴江市| 静乐县| 图木舒克市| 博乐市| 郓城县| 宣武区| 宁陕县| 腾冲县| 根河市| 惠东县| 玛曲县| 濮阳市| 铜川市| 东海县| 华容县| 桑日县| 肇州县| 灵山县| 松潘县| 秀山| 泽州县| 平度市| 大埔区| 宜兰县| 靖江市|