Class c = ArrayList.class;
c.isPrimitive(); //判斷c是否為基礎資料型別 (Elementary Data Type)
c.isAssignableFrom(List.class); //判斷c是否是List類的子類或父類
c.getGenericType(); //得到泛型型別
執行個體:通過反射得到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("基礎資料型別 (Elementary Data Type): " + f.getName() + " " + fc.getName());}else{if(fc.isAssignableFrom(List.class)){ //判斷是否為ListSystem.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());}}}}}