您的位置:首页 > 其它

其他-如何获取父类中的泛型T的类型

2017-09-04 15:07 246 查看
package cn.itcast.elec.dao.impl;

import java.io.Serializable;
import java.lang.reflect.ParameterizedType;

import javax.annotation.Resource;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Transactional;

import cn.itcast.elec.dao.inter.ICommonDao;

@Transactional
public abstract class CommonDaoImpl<T>  implements ICommonDao<T> {
@Resource(name="sessionFactory")
private SessionFactory sessionFactory;

public Object findObjectById(Serializable id) {
//泛型转换
//获得父类
ParameterizedType pt=(ParameterizedType) this.getClass().getGenericSuperclass();
//获得泛型的类型
Class entity=(Class) pt.getActualTypeArguments()[0];

Session session=sessionFactory.getCurrentSession();

return session.get(entity, id);
}
//========================================================================

public SessionFactory getSessionFactory() {
return sessionFactory;
}

public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: