Java中instanceOf關(guān)鍵字的用法及特性詳解
一. instanceOf關(guān)鍵字
1. 簡介
在上面學習類型轉(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類型 ? 表達式1 : 表達式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)鍵字的用法及特性詳解的詳細內(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)文章
自定義log4j2中的Appender來獲取日志內(nèi)容的示例代碼
在 Log4j2 中,Appender 是負責將日志事件輸出到目標地點的組件,本文講述的是通過 log4j 中自定義的 Appender 來獲取需要打印的日志信息,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下2024-02-02
IDEA 去除 mybatis.xml 文件黃色警告的圖文教程
這篇文章主要介紹了IDEA 去除 mybatis.xml 文件黃色警告的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
Spring自定義注解實現(xiàn)數(shù)據(jù)脫敏
在當今數(shù)據(jù)安全越來越受到重視的背景下,許多企業(yè)都對敏感數(shù)據(jù)的保護有著嚴格的要求,本文就來深入探討一下如何自定義注解來實現(xiàn)對敏感數(shù)據(jù)的脫敏處理吧2024-11-11
SpringBoot下Mybatis的緩存的實現(xiàn)步驟
這篇文章主要介紹了SpringBoot下Mybatis的緩存的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
Springboot結(jié)合JDBC實現(xiàn)雙數(shù)據(jù)源實例
這篇文章主要為大家介紹了Springboot結(jié)合JDBC實現(xiàn)雙數(shù)據(jù)源實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
java拷貝指定目錄下所有內(nèi)容到minIO代碼實例
這篇文章主要介紹了java拷貝指定目錄下所有內(nèi)容到minIO代碼實例,創(chuàng)建桶 直接使用工具類先判斷,再創(chuàng)建即可,創(chuàng)建文件夾,需要注意以"/"結(jié)尾,實際也是在minIO上創(chuàng)建文件,只是作為目錄的表現(xiàn)形式展示,需要的朋友可以參考下2024-01-01

