记录 以便以后参考----
基类代码
GenericDaoImpl<T extends IdEntity> 声明继承GenericDaoImpl的类必须指定一个对象,并且这个对象必须继承IdEntity
extends HibernateDaoSupport 不多说
implements GenericDao<T> 定义了增删改的方法 并且指定的了泛型对象 其内部定义一些通用方法(curd)列:
再看看如何在当前GenericDaoImpl类在被实例化后获取子类指定哪个泛型对象呢?
基类代码
public class GenericDaoImpl<T extends IdEntity> extends HibernateDaoSupport implements GenericDao<T>
GenericDaoImpl<T extends IdEntity> 声明继承GenericDaoImpl的类必须指定一个对象,并且这个对象必须继承IdEntity
extends HibernateDaoSupport 不多说
implements GenericDao<T> 定义了增删改的方法 并且指定的了泛型对象 其内部定义一些通用方法(curd)列:
//这就是泛型的好处,你指定哪个对象,他就让hibernate执行哪个对象的操作
void insert(T entity);
再看看如何在当前GenericDaoImpl类在被实例化后获取子类指定哪个泛型对象呢?
/**
* 数据实体类型
*/
protected Class<T> entityClass;
/**
* 默认构造函数
*/
@SuppressWarnings("unchecked")
public GenericDaoImpl() {
Type superClassType = getClass().getGenericSuperclass();
if (superClassType instanceof ParameterizedType) {
Type[] paramTypes = ((ParameterizedType) superClassType).getActualTypeArguments();
this.entityClass = (Class<T>) paramTypes[0];
}
}