最近在学习Hibernate,自己写了一个hibernate泛型DAO,可是在DAO接口实现类中获取不到实体类类型,我把代码精简了一下,麻烦大神帮我看看BaseDaoImpl中为何获取不到实体类类型User.一编...
最近在学习Hibernate,自己写了一个hibernate泛型DAO,可是在DAO接口实现类中获取不到实体类类型,我把代码精简了一下,麻烦大神帮我看看BaseDaoImpl中为何获取不到实体类类型User.一编译就会产生java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType的报错,求大神指教
package com.hib;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import com.hib.entity.User;
public class Test3 {
public static void main(String[] args){
BaseDao dao =new BaseDaoImpl();
}
}
interface BaseDao {
}
class BaseDaoImpl extends HibernateBaseDao implements BaseDao{
public Class> entityClass;
public BaseDaoImpl() {
Type genType = getClass().getGenericSuperclass();
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
this.entityClass=(Class)params[0];
System.out.println(this.entityClass);
}
}
abstract class HibernateBaseDao {
public HibernateBaseDao() {
}
} 谁帮我调试一下,吧User换成String调试就行了,User类我就不发了。
展开