getGenericSuperclass()
getGenericSuperclass()
是什么
获取带泛型信息的父类类型
简单例子
class StringList extends ArrayList<String> { }StringList list = new StringList();
Type type = list.getClass().getGenericSuperclass();
// 返回 ParameterizedType: ArrayList<String>
class IntList extends ArrayList<Integer> { }IntList list = new IntList();
Type type = list.getClass().getGenericSuperclass();
// 返回 ParameterizedType: ArrayList<Integer>
对比普通方法
// 普通方法:只返回原始类
Class<?> clazz = list.getClass().getSuperclass(); // ArrayList// 泛型方法:返回完整泛型信息
Type type = list.getClass().getGenericSuperclass(); // ArrayList<String>
一句话理解
获取包含泛型的具体父类类型
