Class --> Type getGenericSupperclass()
Type --> ParameterizedType,把Type强转成ParameterizedType类型!!!
ParameterizedType --> 参数化类型 = A<String>
ParameterizedType:Type[] getActualTypeArguments(),A<String>中的String
Type[]就是Class[],我们就得到了类型参数了!
abstract class A<T>{}
class B extends A<String>{
}
我们可以通过反射得到子类从父类得到的泛型信息,
Class class1=this.getClass();
Type type=class1.getGenericSuperclass();
ParameterizedType parameterizedType=(ParameterizedType) type;
Type type2=parameterizedType.getActualTypeArguments()[0];
System.out.println(((Class)type2).getName());
通过这样的操作就可以得到java.lang.String
注意,getGenericSupperclass()是得到父类的泛型信息
如果没有,例如 这样class B<String> extends A{ }
就会报