java中instanceof使用详细介绍
instanceof是Java語(yǔ)言中的一個(gè)二元運(yùn)算符,它的作用是:判斷一個(gè)引用類(lèi)型變量所指向的對(duì)象是否是一個(gè)類(lèi)(或接口、抽象類(lèi)、父類(lèi))的實(shí)例,即它左邊的對(duì)象是否是它右邊的類(lèi)的實(shí)例,該運(yùn)算符返回boolean類(lèi)型的數(shù)據(jù)。
boolean result = obj instanceof Class
其中obj為一個(gè)對(duì)象,Class表示一個(gè)類(lèi)或者一個(gè)接口,當(dāng)obj為Class的對(duì)象,或者是其直接或者間接子類(lèi),或者是接口的實(shí)現(xiàn)類(lèi),結(jié)果result 都返回true,否則返回false。
注意:編譯器會(huì)檢查 obj 是否能轉(zhuǎn)換成右邊的class類(lèi)型,如果不能轉(zhuǎn)換則直接報(bào)錯(cuò),如果不能確定類(lèi)型,則通過(guò)編譯,具體看運(yùn)行時(shí)定。
?
2、instanceof?應(yīng)用
1.??其中obj 必須為引用類(lèi)型,不能是基本類(lèi)型,instanceof?運(yùn)算符只能用作對(duì)象的判斷。
?
2.??當(dāng)obj為null
一般我們知道java分為兩種數(shù)據(jù)類(lèi)型,一種是基本數(shù)據(jù)類(lèi)型,有8個(gè):byte、short、int、long、float、double、char、boolean,一種引用類(lèi)型,包括類(lèi),接口,數(shù)組等等。而java中還有一種特殊的null類(lèi)型,該類(lèi)型沒(méi)有名字,所以不能聲明為null類(lèi)型的變量或者轉(zhuǎn)換為null,null引用是null類(lèi)型表示式唯一可能的值,null引用也可以轉(zhuǎn)換為任意引用類(lèi)型。在JavaSE規(guī)范中對(duì)instanceof 運(yùn)算符的規(guī)定就是:如果obj為null,返回false。
?
?
3.??obj為class 類(lèi)的實(shí)例對(duì)象
?
4.??obj為Class接口的實(shí)現(xiàn)類(lèi)
了解java集合,我們知道集合中有一個(gè)上層接口List,其中有個(gè)典型的實(shí)現(xiàn)類(lèi) ArrayList
?
所以我們可以用instanceof 運(yùn)算符判斷某個(gè)對(duì)象是否是List 接口的實(shí)現(xiàn)類(lèi),如果是返回true,否則返回false。
或者反過(guò)來(lái)也是true
?
?
5.??obj為class 類(lèi)的直接或者間接子類(lèi)
總結(jié)
以上是生活随笔為你收集整理的java中instanceof使用详细介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: spring-boot集成elastic
- 下一篇: JAVA面向对象明星类