// 构造方法,根据实例类自动获取实体类类型
public GenericHibernateDao() {
this.entityClass = null ;
Class c = getClass();
Type t = c.getGenericSuperclass();
if (t instanceof ParameterizedType) {
Type[] p = ((ParameterizedType) t).getActualTypeArguments();
this.entityClass = (Class<T>) p[0];
}
}
当然上面的代码不是万能的,只有实例化了GenericHibernateDao的子类才可以按上述方法获得T,如果子类没有实例化T的话,是无法获取的。