反射
public class BaseDao<T› extends HibernateDaoSupport implements IBaseDao<T> {
/** 泛型中的初阶类型*/
private Class<T> entityClass;
public BaseDao(){
//获取对象对应的父类的类型
Type baseDaoclass = this.getclass().getGenericsuperclass();
//转成带参数,即泛型的类型
ParameterizedType pType = (ParameterizedType)baseDaoClass;
//获取参数泛型类型数组
Type [] types = pType.getActualTypeArguments();
//由于BaseDao<T>的泛型参数里只有一个类型丁,因此数组的第一个元素就是类型T的实际上的类型
entityClass = (Class<T>)types[0];
}
}
评论区