获取当前BaseDAO的子类继承的父类中的泛型
public abstract class BaseDAO<T> { // 定义一个变量来接收泛型的类型
private Class<T> clazz = null;
// public BaseDAO(){
//
// }
// 获取T的Class对象,获取泛型的类型,泛型是在被子类继承时才确定
{
//获取当前BaseDAO的子类继承的父类中的泛型
// getClass()获取子类的类型
// getGenericSuperclass()用来获取当前类的父类的类型
// ParameterizedType表示的是带泛型的类型
Type genericSuperclass = this.getClass().getGenericSuperclass();
ParameterizedType paramType = (ParameterizedType) genericSuperclass;
Type[] typeArguments = paramType.getActualTypeArguments();//获取了父类的泛型参数
clazz = (Class<T>) typeArguments[0];//泛型的第一个参数
}
}
this关键字是指子类的实例
以上是 获取当前BaseDAO的子类继承的父类中的泛型 的全部内容, 来源链接: utcz.com/z/511588.html