Java中instanceOf關(guān)鍵字的用法及特性詳解
一. 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)文章!
- Java深入講解instanceof關(guān)鍵字的使用
- Java中instanceof關(guān)鍵字實(shí)例講解
- Java關(guān)鍵字之instanceof詳解
- Java instanceof關(guān)鍵字用法詳解及注意事項(xiàng)
- java中instanceof 關(guān)鍵字作用和實(shí)際用途詳解
- Java關(guān)鍵字instanceof用法及實(shí)現(xiàn)策略
- Java關(guān)鍵字instanceof的兩種用法實(shí)例
- Java instanceof關(guān)鍵字的的進(jìn)一步理解
- Java中instanceof關(guān)鍵字的用法總結(jié)
- Java中instanceof 關(guān)鍵字的使用
相關(guān)文章
自定義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)的詳細(xì)方法知識(shí)點(diǎn),有需要的朋友們參考學(xué)習(xí)下。2018-10-10
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
IDEA 去除 mybatis.xml 文件黃色警告的圖文教程
這篇文章主要介紹了IDEA 去除 mybatis.xml 文件黃色警告的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
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)步驟,文中通過(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í)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
java編程中自動(dòng)拆箱與自動(dòng)裝箱詳解
這篇文章主要介紹了java編程中自動(dòng)拆箱與自動(dòng)裝箱詳解,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
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

