Java instanceof 運(yùn)算符的使用方法
用法:
(類(lèi)型變量 instanceof 類(lèi)|接口)
作用:
instanceof 操作符用于判斷前面的對(duì)象是否是后面的類(lèi),或者其子類(lèi)、實(shí)現(xiàn)類(lèi)的實(shí)例。如果是則返回true 否則就返回false。
注意:
· instanceof前面的操作數(shù)的編譯時(shí)類(lèi)型要么與后面的類(lèi)相同,要么與后面的類(lèi)具有父子繼承關(guān)系否則會(huì)引發(fā)編譯錯(cuò)誤。
一個(gè)簡(jiǎn)單的例子:
/**
* instanceof 運(yùn)算符
* @author Administrator
*
*/
public class TestInstanceof {
public static void main(String[] args) {
//聲明hello 時(shí)使用Object類(lèi),則hello的編譯類(lèi)型是Object
//Object類(lèi)是所有類(lèi)的父類(lèi),但hello的實(shí)際類(lèi)型是String
Object hello = "Hello";
//String是Object的子類(lèi)可以進(jìn)行instanceof運(yùn)算,返回true
System.out.println("字符串是否為object類(lèi)的實(shí)例:"
+ (hello instanceof Object));
//true
System.out.println("字符串是否為String的實(shí)例:"
+ (hello instanceof String));
//false
System.out.println("字符串是否為Math類(lèi)的實(shí)例:"
+ (hello instanceof Math));
//String實(shí)現(xiàn)了Comparable接口,所以返回true
System.out.println("字符串是否為Comparable類(lèi)的實(shí)例:"
+(hello instanceof Comparable));
/**
* String 既不是Math類(lèi),也不是Math類(lèi)的父類(lèi),故下面代碼編譯錯(cuò)誤
*/
//String a = "hello";
//System.out.println("字符串是否為Math類(lèi)的實(shí)例:"
// + (a instanceof Math));
}
}
運(yùn)行結(jié)果:
字符串是否為object類(lèi)的實(shí)例:true
字符串是否為String的實(shí)例:true
字符串是否為Math類(lèi)的實(shí)例:false
字符串是否為Comparable類(lèi)的實(shí)例:true
通常在進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換之前,先判斷前一個(gè)對(duì)象是不是后一個(gè)對(duì)象的實(shí)例,是否可以成功轉(zhuǎn)換,從而保證代碼的健壯性。
相關(guān)文章
Java那點(diǎn)事——StringBuffer與StringBuilder原理與區(qū)別
本文給大家分享StringBuffer與StringBuilder的區(qū)別,它們的應(yīng)用場(chǎng)景是什么?非常不錯(cuò),面試考官經(jīng)??嫉囊粋€(gè)問(wèn)題,有需要的朋友跟著腳本之家小編一起學(xué)習(xí)吧2016-06-06SpringBoot2 實(shí)現(xiàn)JPA分頁(yè)和排序分頁(yè)的案例
這篇文章主要介紹了SpringBoot2 實(shí)現(xiàn)JPA分頁(yè)和排序分頁(yè)的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01Spring boot AOP通過(guò)XML配置文件聲明的方法
這篇文章主要介紹了Spring boot AOP通過(guò)XML配置文件聲明,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Mybatis的collection三層嵌套查詢方式(驗(yàn)證通過(guò))
這篇文章主要介紹了Mybatis的collection三層嵌套查詢方式(驗(yàn)證通過(guò)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03SpringBoot整合Ip2region獲取IP地址和定位的詳細(xì)過(guò)程
ip2region v2.0 - 是一個(gè)離線IP地址定位庫(kù)和IP定位數(shù)據(jù)管理框架,10微秒級(jí)別的查詢效率,提供了眾多主流編程語(yǔ)言的 xdb 數(shù)據(jù)生成和查詢客戶端實(shí)現(xiàn) ,這篇文章主要介紹了SpringBoot整合Ip2region獲取IP地址和定位,需要的朋友可以參考下2023-06-06macOS中搭建Java8開(kāi)發(fā)環(huán)境(基于Intel?x86?64-bit)
這篇文章主要介紹了macOS中搭建Java8開(kāi)發(fā)環(huán)境(基于Intel?x86?64-bit)?的相關(guān)資料,需要的朋友可以參考下2022-12-12CountDownLatch和Atomic原子操作類(lèi)源碼解析
這篇文章主要為大家介紹了CountDownLatch和Atomic原子操作類(lèi)的源碼解析以及理解應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03