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

Java中instanceOf關(guān)鍵字的用法及特性詳解

 更新時(shí)間:2023年05月10日 09:11:54   作者:一一哥Sun  
當(dāng)我們?cè)谶M(jìn)行向下轉(zhuǎn)型時(shí),如果兩個(gè)對(duì)象之間沒(méi)有直接或間接的繼承關(guān)系,在轉(zhuǎn)換時(shí)有可能會(huì)產(chǎn)生強(qiáng)制類(lèi)型轉(zhuǎn)換異常,我們可以使用java中自帶的instanceOf關(guān)鍵字來(lái)解決這個(gè)問(wèn)題,所以本篇文章,會(huì)帶大家學(xué)習(xí)instanceOf的用法及特性,需要的朋友可以參考下

一. instanceOf關(guān)鍵字

1. 簡(jiǎn)介

在上面學(xué)習(xí)類(lèi)型轉(zhuǎn)換時(shí),跟大家講過(guò),在向下轉(zhuǎn)型時(shí),如果兩個(gè)類(lèi)型之間沒(méi)有直接或間接的繼承關(guān)系,此時(shí)進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換就會(huì)出現(xiàn)異常。出現(xiàn)異??倸w是不好的,那么我們有沒(méi)有辦法提前避免呢?必須有!其中的一個(gè)解決辦法就是利用instanceOf關(guān)鍵字來(lái)提前判斷。

我們?cè)谙蛳罗D(zhuǎn)型之前,最好先對(duì)要轉(zhuǎn)換的對(duì)象進(jìn)行判斷,以免發(fā)生類(lèi)型轉(zhuǎn)換異常。

instanceof是Java里的一個(gè)二元操作符,類(lèi)似于 ==、>、<等操作符。在進(jìn)行向下轉(zhuǎn)型時(shí), 我們可以使用instanceOf用于類(lèi)型檢查 , 判斷某個(gè)對(duì)象是否屬于指定的類(lèi)型,如果屬于則返回true,否則返回false。

2. 語(yǔ)法

instanceOf的作用是測(cè)試它左邊的對(duì)象是否是它右邊類(lèi)的實(shí)例,并返回 boolean類(lèi)型的數(shù)據(jù)。instanceOf基本語(yǔ)法如下:

對(duì)象名 instanceof 類(lèi)型

instanceOf也經(jīng)常和三目(條件)運(yùn)算符一起使用,格式為 a對(duì)象 instanceof B類(lèi)型 ? 表達(dá)式1 : 表達(dá)式2

另外從Java 14開(kāi)始, instanceOf判斷 后,可以直接轉(zhuǎn)型為指定類(lèi)型的變量,不用再次強(qiáng)制轉(zhuǎn)型

3. 案例

我們還是在上面的代碼基礎(chǔ)之上進(jìn)行修改,instanceOf關(guān)鍵字使用案例如下:

public class AnimalTest {
    public static void main(String[] args) {	
        Animal animal= new Cat();
        //判斷animal是否是Cat類(lèi)型
        if(animal instanceof Cat) {
            animal.speak();
        }

        Dog dog=new Dog();
        //如果dog是Cat類(lèi)型,才會(huì)進(jìn)行方法調(diào)用,否則不會(huì)執(zhí)行。
        if(dog instanceof Cat) {
            //強(qiáng)制類(lèi)型轉(zhuǎn)換
            Cat cat = (Cat)dog;    
            dog.speak();
        }

        //注意:從Java 14開(kāi)始,判斷instanceOf后,可以直接轉(zhuǎn)型為指定類(lèi)型的變量,不用再次強(qiáng)制轉(zhuǎn)型。
        Object obj = "java14新特性";
        if (obj instanceof String s) {
            System.out.println("字符串變大寫(xiě)=" + s.toUpperCase());
        }

        if (dog instanceof Cat c) {
            c.speak();
        }

        //instanceOf也經(jīng)常和三目(條件)運(yùn)算符一起使用
        Object obj2 = "hello 壹壹";
        String result=obj2 instanceof String ? "yes":"no";
        System.out.println(result);
    }
}

注意:從Java 14開(kāi)始,判斷instanceOf后,可以直接轉(zhuǎn)型為指定類(lèi)型的變量,不用再次強(qiáng)制轉(zhuǎn)型。

二. 結(jié)語(yǔ)

至此,就把類(lèi)型轉(zhuǎn)換給大家介紹完了,我們來(lái)看看類(lèi)型轉(zhuǎn)換的要點(diǎn)吧::

  • 向下轉(zhuǎn)型時(shí),最好借助instanceOf進(jìn)行類(lèi)型判斷;
  • instanceof用于類(lèi)型檢查,防止類(lèi)型不一致時(shí)出現(xiàn)強(qiáng)制類(lèi)型轉(zhuǎn)換異常;
  • 注意java14后instanceOf的變化。

以上就是Java中instanceOf關(guān)鍵字的用法及特性詳解的詳細(xì)內(nèi)容,更多關(guān)于Java instanceOf用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 自定義log4j2中的Appender來(lái)獲取日志內(nèi)容的示例代碼

    自定義log4j2中的Appender來(lái)獲取日志內(nèi)容的示例代碼

    在 Log4j2 中,Appender 是負(fù)責(zé)將日志事件輸出到目標(biāo)地點(diǎn)的組件,本文講述的是通過(guò) log4j 中自定義的 Appender 來(lái)獲取需要打印的日志信息,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-02-02
  • java web實(shí)現(xiàn)分頁(yè)查詢(xún)實(shí)例方法

    java web實(shí)現(xiàn)分頁(yè)查詢(xún)實(shí)例方法

    在本篇文章里我們給大家分享了java web實(shí)現(xiàn)分頁(yè)查詢(xún)的詳細(xì)方法知識(shí)點(diǎn),有需要的朋友們參考學(xué)習(xí)下。
    2018-10-10
  • idea中寫(xiě)sql語(yǔ)句沒(méi)有提示字段的問(wèn)題

    idea中寫(xiě)sql語(yǔ)句沒(méi)有提示字段的問(wèn)題

    在IDEA中編寫(xiě)SQL時(shí)如果沒(méi)有字段提示,通常是因?yàn)闆](méi)有設(shè)置注入語(yǔ)言,解決方法是通過(guò)快捷鍵Alt+Enter選擇“注入語(yǔ)言或引用”,然后選擇相應(yīng)的數(shù)據(jù)庫(kù)(如MySQL),之后重新輸入SQL語(yǔ)句即可,此方法可以有效解決IDEA中SQL語(yǔ)句提示問(wèn)題,提高開(kāi)發(fā)效率
    2024-09-09
  • Mybatis-Plus注入SQL原理分析

    Mybatis-Plus注入SQL原理分析

    本文主要介紹了Mybatis-Plus注入SQL原理分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • IDEA 去除 mybatis.xml 文件黃色警告的圖文教程

    IDEA 去除 mybatis.xml 文件黃色警告的圖文教程

    這篇文章主要介紹了IDEA 去除 mybatis.xml 文件黃色警告的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Spring自定義注解實(shí)現(xiàn)數(shù)據(jù)脫敏

    Spring自定義注解實(shí)現(xiàn)數(shù)據(jù)脫敏

    在當(dāng)今數(shù)據(jù)安全越來(lái)越受到重視的背景下,許多企業(yè)都對(duì)敏感數(shù)據(jù)的保護(hù)有著嚴(yán)格的要求,本文就來(lái)深入探討一下如何自定義注解來(lái)實(shí)現(xiàn)對(duì)敏感數(shù)據(jù)的脫敏處理吧
    2024-11-11
  • SpringBoot下Mybatis的緩存的實(shí)現(xiàn)步驟

    SpringBoot下Mybatis的緩存的實(shí)現(xiàn)步驟

    這篇文章主要介紹了SpringBoot下Mybatis的緩存的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Springboot結(jié)合JDBC實(shí)現(xiàn)雙數(shù)據(jù)源實(shí)例

    Springboot結(jié)合JDBC實(shí)現(xiàn)雙數(shù)據(jù)源實(shí)例

    這篇文章主要為大家介紹了Springboot結(jié)合JDBC實(shí)現(xiàn)雙數(shù)據(jù)源實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • java編程中自動(dòng)拆箱與自動(dòng)裝箱詳解

    java編程中自動(dòng)拆箱與自動(dòng)裝箱詳解

    這篇文章主要介紹了java編程中自動(dòng)拆箱與自動(dòng)裝箱詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • java拷貝指定目錄下所有內(nèi)容到minIO代碼實(shí)例

    java拷貝指定目錄下所有內(nèi)容到minIO代碼實(shí)例

    這篇文章主要介紹了java拷貝指定目錄下所有內(nèi)容到minIO代碼實(shí)例,創(chuàng)建桶 直接使用工具類(lèi)先判斷,再創(chuàng)建即可,創(chuàng)建文件夾,需要注意以"/"結(jié)尾,實(shí)際也是在minIO上創(chuàng)建文件,只是作為目錄的表現(xiàn)形式展示,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

香河县| 温州市| 汉川市| 合川市| 湾仔区| 萨迦县| 临夏县| 门头沟区| 故城县| 怀安县| 三都| 拉孜县| 洞口县| 宜丰县| 嘉善县| 汉阴县| 威远县| 安陆市| 肃宁县| 南宫市| 潮州市| 顺昌县| 聂荣县| 灵山县| 深州市| 开平市| 邯郸县| 平顶山市| 苗栗市| 吴堡县| 台前县| 嘉黎县| 新宁县| 六盘水市| 瑞金市| 丰台区| 瑞安市| 团风县| 奉节县| 保德县| 天长市|