通过反射获取泛型<T>的class
2016-05-21 11:17
375 查看
都知道通过反射可以直接创建对象的实例,但我们需要得到对象的class。但如果对象是一个泛型,如何获得T.class呢?
如果有多个泛型呢?
注意后面的数组下标。如果我们想获得第二个泛型T的class,则下标为1;如果只有一个泛型则下标为0
public class Test<T> { public T newInstance(){ T instance=null; Class<T> entityClass = (Class<T>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0]; // …… return instance; }; }
如果有多个泛型呢?
public class Test<PK,T> { public T newInstance(){ T instance=null; Class<T> entityClass = (Class<T>) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[1]; // …… return instance; }; }
注意后面的数组下标。如果我们想获得第二个泛型T的class,则下标为1;如果只有一个泛型则下标为0
相关文章推荐
- MySQL安装脚本
- 修改 Android 5.1 默认设置
- 关于Cocos2d-x头文件的引用
- 自救教程:安卓手机碎屏三键尽损
- 云计算与大数据概述
- 【POJ 2370】Cow Sorting(置换群)
- NYOJ 1233 差值
- Gulp入门之自动化构建Sass
- 关于Cocos2d-x有些头文件无法引入或者类显示无法打开
- linux下man命令的使用
- spring-mybatis整合测试
- listView系列之分类显示
- 【VC图像处理】双线性插值
- 一个简单的图片裁剪Activity:android-crop
- 一种完美的降采样插值方法
- 使用JQuery实现级联Dropdownbox
- 网站受攻击的常用手段
- sql server中syscolumns各个字段的意义
- 互联网上常用的协议以及它们的工作端口
- 服务器发布tomcat的WEB项目供外网访问