如何获得泛型的Class对象

1) rapid-framework的解决方案
抽象类BaseHibernateDao中提供了抽象方法
public abstract Class getEntityClass();
由Dao子类实现该方法

2)appfuse的解决方案
在GenericDaoHibernate中提供了构造方法和setter
public GenericDaoHibernate(final Class persistentClass),不允许无参的构造方法

3)springside的解决方案


SimpleHibernateDao获取的其父类SimpleHibernateDao的泛型类型
public  SimpleHibernateDao() {
       
this .entityClass  =  ReflectionUtils.getSuperClassGenricType(getClass());
}

ReflectionUtils.getSuperClassGenricType:
Class
< T >  entityClass  = (Class < T > )
 ((ParameterizedType) getClass().getGenericSuperclass())
.getActualTypeArguments()[
0 ];

你可能感兴趣的:(j2ee)