泛型概述:通用的类型
<>: typeof
List
获取实现的接口或继承的类上的参数化类型的API:
Type[] getGenericInterfaces(); :获得带有泛型的接口,可以实现多个接口。
Type getGenericSuperclass(); :获得带有泛型的父类,继承一个类。
在设置通用Dao时:
方法一:
private Class clazz;
//通过泛型反射来获取参数化类型中的实际类型参数
public BaseDaoImp() {
//1,获取继承该类的类的class
Class<? extends BaseDaoImp> clazz = this.getClass();
//2,获取调用类继承的父类上的参数化类型
Type type = clazz.getGenericSuperclass();
//3,将type强转为参数化类型
ParameterizedType pType=(ParameterizedType) type;
//4,获取参数化类型上的实际类型参数,可能有多个
Type[] types = pType.getActualTypeArguments();
//5,获取第一个
this.clazz=(Class) types[0];
}
方法二:设置有参构造,但需要在子类中也要编写构造方法(不推荐)