首先知道:
Class clzz=getClass().getSuperclass();
Type type=getClass().getGenericSuperclass();
而Type是JAVA语言中所有类型的公共父接口,Class类是其直接实现类。
获取父类泛型类型:
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是一个单词:就是“通配符”】