反射获取泛型真实类型
2016-01-06 08:43
417 查看
<pre name="code" class="java">public class Animal<T> { } import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class Cat extends Animal<Cat> { public static void main(String[] args) { Cat st=new Cat(); Class clazz=st.getClass(); //getSuperclass()获得该类的父类 System.out.println(clazz.getSuperclass()); //getGenericSuperclass()获得带有泛型的父类 //Type是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。 Type type=clazz.getGenericSuperclass(); System.out.println(type); //ParameterizedType参数化类型,即泛型 ParameterizedType p=(ParameterizedType)type; //getActualTypeArguments获取参数化类型的数组,泛型可能有多个 Class c=(Class) p.getActualTypeArguments()[0]; System.out.println(c); } } 打印结果: class com.test.Animal com.test.Animal<com.test.Cat> class com.test.Cat
相关文章推荐
- 机器视觉中的图像积分图及其实现
- 熔断“首秀”券商营业部侧记:“有点措手不及”
- IOS(UI)_UIButton(按钮)和UIImageView(图片视图)
- apktool升级到2.0以上时,使用方式已经替换
- [javase学习笔记]-7.13 静态的内存加载
- winform按钮美化(非图片)
- js判断当前页面用什么浏览器打开的方法
- javascript中闭包(Closure)详解
- velocity模板引擎 -- java.io.FileNotFoundException: velocity.log (Permission denied)
- qt日期时间
- 2016年第1本:用户体验要素--以用户为中心的产品设计
- IOS中延时执行的几种方式的比较和汇总
- Android Ant 和 Gradle 打包流程和效率对照
- 变态最大值(南阳oj811)
- Android:meta-data
- fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- IPython、Notebook、qtconsole使用教程
- IPython、Notebook、qtconsole使用教程
- Android 应用程序签名
- MVC的JavaScriptResult使用