首页 > 学院 > 开发设计 > 正文

关于父类泛型反射

2019-11-11 04:41:43
字体:
来源:转载
供稿:网友
PRivate Class clazz;// 在父类中提供有参数的构造方法:public BaseDaoImpl() {	// 如果去掉子类的构造方法,就必须在父类中提供无参数的构造,而且在父类无参数的构造方法中,获得具体类型的Class。	// 需要使用泛型的反射。	// 获得具体子类的Class对象。	Class c = this.getClass(); // 代表的子类的Class,CustomerDaoImpl或者LinkManDaoImpl的Class	// 通过Class获取带有泛型的父类:	Type type = c.getGenericSuperclass(); // 获得的是BaseDaoImpl<Customer>或者是BaseDaoImpl<LinkMan>	System.out.println("type======"+type);	// BaseDaoImpl<Customer>其实就是参数化的类型,将type强转为参数化的类型	ParameterizedType pType = (ParameterizedType) type;//BaseDaoImpl<Customer> 或者是BaseDaoImpl<LinkMan>	// 调用参数化类型中的方法,获得实际类型的参数:	Type[] types = pType.getActualTypeArguments(); // 获得实际类型参数的数组。但实际中只有一个 Customer或LinkMan	// 获得具体的实际类型参数:Customer或者LinkMan	this.clazz = (Class) types[0];}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表