java判斷class子類或父類的實(shí)例方法
更新時(shí)間:2020年02月06日 10:27:23 作者:V
在本篇文章里小編給大家整理的是關(guān)于java判斷class子類或父類的實(shí)例方法,需要的朋友們可以參考學(xué)習(xí)下。
我們首先看代碼:
Class c = ArrayList.class; c.isPrimitive(); //判斷c是否為基本數(shù)據(jù)類型 c.isAssignableFrom(List.class); //判斷c是否是List類的子類或父類 c.getGenericType(); //得到泛型類型
實(shí)例:通過反射得到List<T> 集合中的泛型類型
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> a;
List<B> b;
// List l ;
Map<Integer, String> map ;
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ù)類型: " + f.getName() + " " + fc.getName());
}else{
if(fc.isAssignableFrom(List.class)){ //判斷是否為List
System.out.println("List類型:" + f.getName());
Type gt = f.getGenericType(); //得到泛型類型
ParameterizedType pt = (ParameterizedType)gt;
Class lll = (Class)pt.getActualTypeArguments()[0];
System.out.println("\t\t" + lll.getName());
}
}
}
}
}
內(nèi)容擴(kuò)展:
java 如何判斷一個(gè)類是否是另一個(gè)類的子類
Class clazzB = B.class;
Class clazzD = D.class;
boolean isFather = clazzD.isAssignableFrom(clazzB));
if(isFather){
System.out.println("D是B的父類");
}else{
System.out.println("D不是B的父類");
}
以上就是本次介紹的全部內(nèi)容,感謝大家對腳本之家的支持。
相關(guān)文章
Spring Boot集群管理工具KafkaAdminClient使用方法解析
這篇文章主要介紹了Spring Boot集群管理工具KafkaAdminClient使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
分頁技術(shù)原理與實(shí)現(xiàn)之Java+Oracle代碼實(shí)現(xiàn)分頁(二)
這篇文章主要介紹了分頁技術(shù)原理與實(shí)現(xiàn)的第二篇:Java+Oracle代碼實(shí)現(xiàn)分頁,感興趣的小伙伴們可以參考一下2016-06-06
Java實(shí)現(xiàn)樹形菜單的方法總結(jié)
當(dāng)我們想要展示層級結(jié)構(gòu),如文件目錄、組織結(jié)構(gòu)或分類目錄時(shí),樹形菜單是一個(gè)直觀且有效的解決方案,本文為大家整理了java中幾種常見方法,希望對大家有所幫助2023-08-08

