获取当前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

回到顶部