Class C = arraylist.class;
C.isprimitive (); Determine if C is a basic data type
C.isassignablefrom (List.class); Determine if C is a subclass of the list class or a parent class
C.getgenerictype (); Get generic type
Instance: the generic type in the List<t> collection is obtained by reflection
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;< c20/>field[] fields = Tc.getdeclaredfields ();
for (Field f:fields) {
Class FC = F.gettype ();
if (fc.isprimitive ()) {
System.out.println ("Base data type:" + f.getname () + " " + fc.getname ());
} else{
if (Fc.isassignablefrom (List.class)) {//To determine whether the list
System.out.println ("list type:" + f.getname ());
Type GT = F.getgenerictype (); Get generic type
parameterizedtype pt = (parameterizedtype) gt;
Class lll = (Class) pt.getactualtypearguments () [0];
System.out.println ("\t\t" + lll.getname ());}}}}