//java反射,获取类成员类型
public static void checkObjAndStr(Object object) throws IllegalAccessException {
if(null==object) return;
//继承的父类
for(Class<?> clazz = object.getClass() ; clazz != Object.class ; clazz = clazz.getSuperclass()){
for(Field field : clazz.getDeclaredFields()){
System.out.println("-------------------------------------------");
System.out.println(field.getType());
Type gType = field.getGenericType();
System.out.println(gType);
// 还要强转为
if (gType instanceof ParameterizedType){
ParameterizedType pType = (ParameterizedType) gType;
System.out.println(pType);//等效gType,含泛型
Type[] tArgs = pType.getActualTypeArguments();
if(tArgs!=null && tArgs.length>0){
for(int i=0;i<tArgs.length;i++){
System.out.println(tArgs[i]);//泛型
}
}
System.out.println(pType.getRawType());//原始类型
}
System.out.println("-------------------------------------------");
}
}
}
public static void checkObjAndStr(Object object) throws IllegalAccessException {
if(null==object) return;
//继承的父类
for(Class<?> clazz = object.getClass() ; clazz != Object.class ; clazz = clazz.getSuperclass()){
for(Field field : clazz.getDeclaredFields()){
System.out.println("-------------------------------------------");
System.out.println(field.getType());
Type gType = field.getGenericType();
System.out.println(gType);
// 还要强转为
if (gType instanceof ParameterizedType){
ParameterizedType pType = (ParameterizedType) gType;
System.out.println(pType);//等效gType,含泛型
Type[] tArgs = pType.getActualTypeArguments();
if(tArgs!=null && tArgs.length>0){
for(int i=0;i<tArgs.length;i++){
System.out.println(tArgs[i]);//泛型
}
}
System.out.println(pType.getRawType());//原始类型
}
System.out.println("-------------------------------------------");
}
}
}