泛型中获取到Class

来源:互联网 发布:总舵主软件 编辑:程序博客网 时间:2024/05/21 23:34

在公共基础类中:

public class CommonDaoImpl<T> extends HibernateDaoSupport implements ICommonDao<T> {    //泛型转换    private Class entity = (Class)GenericSuperClass.getClass(this.getClass());

在公共基础类的方法中:

public List<T> findCollectionByConditionNoPage(String hqlWhere,            final Object[] params, LinkedHashMap<String, String> orderby) {        String hql = "from "+entity.getSimpleName()+" o where 1=1 ";

Class.getSimpleName() 是得到类的简写名称。

(Class)GenericSuperClass.getClass(this.getClass()) 是得到父类的类模板实例,即类名。this.getClass 是被子类具体实例化的 T 。这样在泛型中就可以得到 继承这个泛型父类的子类的 Class ,便于公共类中的公共方法的重用。

0 0