原:
private final Class<T> clazz;
public HibernateDao(Class<T> clazz) {
this.clazz = clazz;
}
需要从子类中传递:
public OccupierDaoImpl() {
super(Occupier.class);
}
指定相应的Bean.class 不优雅
修改后:
public HibernateDao() {
ParameterizedType parameterizedType = (ParameterizedType) this
.getClass().getGenericSuperclass();
clazz = (Class<T>) parameterizedType.getActualTypeArguments()[0];
}
本文介绍了一种改进的HibernateDao泛型实现方法,通过获取泛型参数类型避免了在构造函数中硬编码指定Bean.class的方式,使得代码更加优雅。
485

被折叠的 条评论
为什么被折叠?



