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);
}
springMVC dao层中通过反射获取entityClass
最新推荐文章于 2023-02-25 12:31:23 发布