Java中instanceOf關(guān)鍵字的用法及特性詳解
一. instanceOf關(guān)鍵字
1. 簡介
在上面學(xué)習(xí)類型轉(zhuǎn)換時,跟大家講過,在向下轉(zhuǎn)型時,如果兩個類型之間沒有直接或間接的繼承關(guān)系,此時進行強制類型轉(zhuǎn)換就會出現(xiàn)異常。出現(xiàn)異??倸w是不好的,那么我們有沒有辦法提前避免呢?必須有!其中的一個解決辦法就是利用instanceOf關(guān)鍵字來提前判斷。
我們在向下轉(zhuǎn)型之前,最好先對要轉(zhuǎn)換的對象進行判斷,以免發(fā)生類型轉(zhuǎn)換異常。
instanceof是Java里的一個二元操作符,類似于 ==、>、<等操作符。在進行向下轉(zhuǎn)型時, 我們可以使用instanceOf用于類型檢查 , 判斷某個對象是否屬于指定的類型,如果屬于則返回true,否則返回false。
2. 語法
instanceOf的作用是測試它左邊的對象是否是它右邊類的實例,并返回 boolean類型的數(shù)據(jù)。instanceOf基本語法如下:
對象名 instanceof 類型
instanceOf也經(jīng)常和三目(條件)運算符一起使用,格式為 a對象 instanceof B類型 ? 表達(dá)式1 : 表達(dá)式2
另外從Java 14開始, instanceOf判斷 后,可以直接轉(zhuǎn)型為指定類型的變量,不用再次強制轉(zhuǎn)型 !
3. 案例
我們還是在上面的代碼基礎(chǔ)之上進行修改,instanceOf關(guān)鍵字使用案例如下:
public class AnimalTest { public static void main(String[] args) { Animal animal= new Cat(); //判斷animal是否是Cat類型 if(animal instanceof Cat) { animal.speak(); } Dog dog=new Dog(); //如果dog是Cat類型,才會進行方法調(diào)用,否則不會執(zhí)行。 if(dog instanceof Cat) { //強制類型轉(zhuǎn)換 Cat cat = (Cat)dog; dog.speak(); } //注意:從Java 14開始,判斷instanceOf后,可以直接轉(zhuǎn)型為指定類型的變量,不用再次強制轉(zhuǎn)型。 Object obj = "java14新特性"; if (obj instanceof String s) { System.out.println("字符串變大寫=" + s.toUpperCase()); } if (dog instanceof Cat c) { c.speak(); } //instanceOf也經(jīng)常和三目(條件)運算符一起使用 Object obj2 = "hello 壹壹"; String result=obj2 instanceof String ? "yes":"no"; System.out.println(result); } }
注意:從Java 14開始,判斷instanceOf后,可以直接轉(zhuǎn)型為指定類型的變量,不用再次強制轉(zhuǎn)型。
二. 結(jié)語
至此,就把類型轉(zhuǎn)換給大家介紹完了,我們來看看類型轉(zhuǎn)換的要點吧::
- 向下轉(zhuǎn)型時,最好借助instanceOf進行類型判斷;
- instanceof用于類型檢查,防止類型不一致時出現(xiàn)強制類型轉(zhuǎn)換異常;
- 注意java14后instanceOf的變化。
以上就是Java中instanceOf關(guān)鍵字的用法及特性詳解的詳細(xì)內(nèi)容,更多關(guān)于Java instanceOf用法的資料請關(guān)注腳本之家其它相關(guān)文章!
- Java深入講解instanceof關(guān)鍵字的使用
- Java中instanceof關(guān)鍵字實例講解
- Java關(guān)鍵字之instanceof詳解
- Java instanceof關(guān)鍵字用法詳解及注意事項
- java中instanceof 關(guān)鍵字作用和實際用途詳解
- Java關(guān)鍵字instanceof用法及實現(xiàn)策略
- Java關(guān)鍵字instanceof的兩種用法實例
- Java instanceof關(guān)鍵字的的進一步理解
- Java中instanceof關(guān)鍵字的用法總結(jié)
- Java中instanceof 關(guān)鍵字的使用
相關(guān)文章
Java中的Semaphore計數(shù)信號量詳細(xì)解析
這篇文章主要介紹了Java中的Semaphore計數(shù)信號量詳細(xì)解析,Semaphore?是一個計數(shù)信號量,必須由獲取它的線程釋放,常用于限制可以訪問某些資源的線程數(shù)量,例如通過?Semaphore?限流,需要的朋友可以參考下2023-11-11java實現(xiàn)socket客戶端連接服務(wù)端
本文是個人剛剛開始學(xué)習(xí)如何通過socket去發(fā)送信息下邊的案例,也是書上的在這留下筆記,最后附上一個實例,有需要的小伙伴可以參考下。2015-10-10springboot響應(yīng)json?null值過濾方式
這篇文章主要介紹了springboot響應(yīng)json?null值過濾方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11SpringBoot整合RabbitMQ的5種模式的注解綁定詳解
這篇文章主要介紹了SpringBoot整合RabbitMQ的5種模式的注解綁定詳解,RabbitMQ 是一個消息中間件,它接收消息并且轉(zhuǎn)發(fā),是"消費-生產(chǎn)者模型"的一個典型的代表,一端往消息隊列中不斷的寫入消息,而另一端則可以讀取或者訂閱隊列中的消息,需要的朋友可以參考下2024-01-01