首先知道:
Class clzz=getClass().getSuperclass();
Type type=getClass().getGenericSuperclass();
而Type是JAVA语言中全部类型的公共父接口,Class类是其直接实现类。java
获取父类泛型类型:
Type type=getClass().getGenericSuperclass();
ParameterizedType pt = (ParameterizedType) type;//参数化
Type[] types=pt.getActualTypeArguments();
Class<T> entityClass=(Class<T>)types[0];
......
如下为 Type直接子接口
ParameterizedType,GenericArrayType,TypeVariable和WildcardType四种类型的接口
ParameterizedType: 表示一种参数化的类型,好比Collection
GenericArrayType: 表示一种元素类型是参数化类型或者类型变量的数组类型
TypeVariable: 是各类类型变量的公共父接口
WildcardType: 表明一种通配符类型表达式,好比?, ? extends Number, ? super Integer【wildcard是一个单词:就是“通配符”】数组