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;
}
}