package com;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class Test {
public static void main(String[] args) {
Class clazz = Man.class;
// 只能获得描述他父类的泛型 这里也就是获取到Person<String,Double,Integer>
Type tp = clazz.getGenericSuperclass();
ParameterizedType ptt = (ParameterizedType)tp;
Type[] typeArr = ptt.getActualTypeArguments();
for (Type type : typeArr) {
System.out.println(type);
try {
System.out.println(type.getTypeName());
if (type.equals(String.class)){
System.out.println("T = String.class");
}
System.out.println("------------");
}catch (Exception e){
}
}
// console output:
// class java.lang.String
// java.lang.String
// T = String.class
// ------------
// class java.lang.Double
// java.lang.Double
// ------------
// class java.lang.Integer
// java.lang.Integer
// ------------
}
class Person<T,E,A> {
}
class Man extends Person<String,Double,Integer>{
}
}