您的位置:首页 > 编程语言 > Java开发

springMVC dao层中通过反射获取entityClass

2016-05-06 10:34 288 查看
public class BaseDaoImpl<T, PK extends java.io.Serializable> implements BaseDao<T, Serializable> {

// 泛型反射类
private Class<T> entityClass;

/**
*
getClass().getGenericSuperclass()返回表示此 Class 所表示的实体
(类、接口、基本类型或 void)的直接超类的 Type然后将其转换ParameterizedType
getActualTypeArguments()返回表示此类型实际类型参数的 Type 对象的数组。
[0]就是这个数组中第一个了。。
简而言之就是通过反射获取子类确定的泛型类
* */
public BaseDaoImpl() {
Type genType = getClass().getGenericSuperclass();
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
entityClass = (Class) params[0];
}

/*
* 根据id获取PO
*/
@Override
@SuppressWarnings("unchecked")
public T get(Serializable id) {
return (T) getSession().get(this.entityClass, id);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: