码迷,mamicode.com
首页 > 其他好文 > 详细

泛型反射

时间:2019-06-14 22:00:45      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:hand   sse   att   height   number   获取   rap   父类   span   

泛型概述:通用的类型

<>:  typeof

<T>:T,叫做参数类型变量

<String> : String ,实际类型参数

List<String> :整体叫做 参数化类型 

获取实现的接口或继承的类上的参数化类型的API:

  1. Type[] getGenericInterfaces(); :获得带有泛型的接口,可以实现多个接口。
  2. 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];
	}
技术图片

方法二:设置有参构造,但需要在子类中也要编写构造方法(不推荐)

泛型反射

标签:hand   sse   att   height   number   获取   rap   父类   span   

原文地址:https://www.cnblogs.com/wuba/p/11025489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!