首先知道:
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是一個單詞:就是「通配符」】數組