BaseDaoImpl.java(运行期获取Dao层基类的泛型):
package cn.xxx.dao.impl;
import java.lang.reflect.ParameterizedType;
public class BaseDaoImpl<T> {
private Class clazz; //用于接收运行期的泛型类型
public BaseDaoImpl() {
//获得当前类型的带有泛型类型的父类 (运行期this其实是BaseDaoImpl的某个子类,ptClass其实就是BaseDaoImpl本身)
ParameterizedType ptClass = (ParameterizedType) this.getClass().getGenericSuperclass();
//获得运行期的泛型类型
clazz = (Class) ptClass.getActualTypeArguments()[0];
}
// .......................
}