今天小編給大家分享的是java如何判斷class是否是某個(gè)類(lèi)的子類(lèi)或父類(lèi),相信很多人都不太了解,為了讓大家更加了解,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會(huì)有所收獲的哦。
創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供榆社企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為榆社眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
Class c = ArrayList.class; c.isPrimitive(); //判斷c是否為基本數(shù)據(jù)類(lèi)型 c.isAssignableFrom(List.class); //判斷c是否是List類(lèi)的子類(lèi)或父類(lèi) c.getGenericType(); //得到泛型類(lèi)型
實(shí)例:通過(guò)反射得到List
package com.zf.target; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.List; import java.util.Map; class T{ List a; List b; // List l ; Mapmap ; int c; } class A {} class B{} public class Test9{ public static void main(String[] args) { Class tc = T.class; Field[] fields = tc.getDeclaredFields(); for (Field f : fields) { Class fc = f.getType(); if(fc.isPrimitive()){ System.out.println("基本數(shù)據(jù)類(lèi)型: " + f.getName() + " " + fc.getName()); }else{ if(fc.isAssignableFrom(List.class)){ //判斷是否為L(zhǎng)ist System.out.println("List類(lèi)型:" + f.getName()); Type gt = f.getGenericType(); //得到泛型類(lèi)型 ParameterizedType pt = (ParameterizedType)gt; Class lll = (Class)pt.getActualTypeArguments()[0]; System.out.println("\t\t" + lll.getName()); } } } } }
以上就是java如何判斷class是否是某個(gè)類(lèi)的子類(lèi)或父類(lèi)的簡(jiǎn)略介紹,當(dāng)然詳細(xì)使用上面的不同還得要大家自己使用過(guò)才領(lǐng)會(huì)。如果想了解更多,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道哦!