Java對(duì)象類型的判斷詳解
instanceof
判斷某個(gè)對(duì)象是否是某個(gè)類的實(shí)例或者某個(gè)類的子類的實(shí)例。它的判斷方式大概是這樣的:
public<T> boolean function(Object obj, Class<T> calzz) {
if (obj == null) {
return false;
}
try {
T t = (T) obj;
return true;
} catch (ClassCastException e) {
return false;
}
}
Class.equals()
這種方式比較的類型,一定是本身才返回true,子類或者父類都返回false;
// B是A的子類,C是B的子類
B b = new B();
// false
System.out.println(b.getClass().equals(A.class));
// true
System.out.println(b.getClass().equals(B.class));
// false
System.out.println(b.getClass().equals(C.class));
PS:b.getClass().equals(A.class)等同于b.getClass() == A.class
Class.isInstance()
這個(gè)方法跟instanceof完全等價(jià)。
// B是A的子類,C是B的子類
B b = new B();
// true
System.out.println(A.class.isInstance(b));
// true
System.out.println(B.class.isInstance(b));
// false
System.out.println(C.class.isInstance(b));
Class.isAssignableFrom
判斷某個(gè)類是否是另一個(gè)類和其子類。
// B是A的子類,C是B的子類
// false
System.out.println(B.class.isAssignableFrom(A.class));
// true
System.out.println(B.class.isAssignableFrom(B.class));
// true
System.out.println(B.class.isAssignableFrom(C.class));
以上所述是小編給大家介紹的Java對(duì)象類型的判斷詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Java中的CyclicBarrier循環(huán)柵欄解析
這篇文章主要介紹了Java中的CyclicBarrier循環(huán)柵欄解析,從字面上的意思可以知道,這個(gè)類的中文意思是"循環(huán)柵欄",大概的意思就是一個(gè)可循環(huán)利用的屏障,它的作用就是會(huì)讓所有線程都等待完成后才會(huì)繼續(xù)下一步行動(dòng),需要的朋友可以參考下2023-12-12
Java 反應(yīng)式編程構(gòu)建響應(yīng)式系統(tǒng)的實(shí)踐案例
本文介紹了反應(yīng)式編程的概念、特點(diǎn)、優(yōu)勢(shì)以及在Java生態(tài)中的應(yīng)用,文中詳細(xì)講解了常見的反應(yīng)式編程庫,通過一個(gè)實(shí)戰(zhàn)案例展示了如何利用反應(yīng)式編程構(gòu)建高效的實(shí)時(shí)數(shù)據(jù)處理系統(tǒng),感興趣的朋友跟隨小編一起看看吧2026-04-04
JAVA雙親委派機(jī)制詳解及實(shí)際應(yīng)用場(chǎng)景
雙親委派機(jī)制是Java類加載器加載類時(shí)的一種策略,這篇文章主要介紹了JAVA雙親委派機(jī)制的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-08-08
Struts2.5版本struts.xml與web.xml配置的更改方法
這篇文章主要給大家介紹了關(guān)于Struts2.5版本中struts.xm與web.xml配置的更改方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
Java實(shí)現(xiàn)簡(jiǎn)單班級(jí)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單班級(jí)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02

