ParameterizedType
getClass().getGenericSuperclass() 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type,然后将其转换ParameterizedType。getActualTypeArguments() 返回表示此类型实际类型参数的 Type 对象的数组。[0]就是这个数组中第一个了。简而言之就是获得超类的泛型参数的实际类型。。
类
public class CommonDaoImpl <T > implements ICommonDao <T > {
@SuppressWarnings ("unchecked" )
private Class entity =
(Class)GenericSuperClass.getClass(this .getClass());
}
类
/**
* @author Joe
* @Name : getClass
* @Description : 范类转换,转换成对应的对象
* @Parameters : Class tClass 范类
* @Return : 返回对象
*/
public class GenericSuperClass {
public static Class getClass (Class tClass) {
ParameterizedType pt =
(ParameterizedType) tClass.getGenericSuperclass();
Class entity = (Class)pt.getActualTypeArguments()[0 ];
return entity;
}
}