`
379548695
  • 浏览: 152248 次
  • 性别: Icon_minigender_1
  • 来自: 河南郑州
社区版块
存档分类
最新评论

运行时获取泛型T

    博客分类:
  • java
 
阅读更多

在编译期间T被搞成Object,类型丢失,所以是不能直接取到的.但有时可以变通地取到,比如:  

public class GenericType<T> { 
    protected GenericType() { 
        Type superclass = getClass().getGenericSuperclass(); 
        if (!(superclass instanceof ParameterizedType)) { 
            throw new RuntimeException("Missing type parameter."); 
        } 
        ParameterizedType parameterized = (ParameterizedType) superclass; 
        
        Class<T> messageType = parameterized.getActualTypeArguments()[0]; 
    } 

一般人俺不告诉他

 

 

public <T> Object executeQuery(MybatisCallBack<T> callback){ 
Class<MybatisCallBack> clazz=callback.getClass();
//下面就是用楼上方式取这个class的泛型了
Type superclass = clazz.getGenericSuperclass();
        if (!(superclass instanceof ParameterizedType)) {
            throw new RuntimeException("Missing type parameter.");
        }
        ParameterizedType parameterized = (ParameterizedType) superclass;
        
        Class<T> messageType = parameterized.getActualTypeArguments()[0];

}
 
分享到:
评论

相关推荐

    \java超强笔记(超级经典)

    编译时类型的泛型和运行时类型的泛型一定要一致,没有多态。 支持泛型的集合,只能存放指定的类型,或者是指定类型的子类型。 注释(元数据): 描述代码的代码,作用是规范编译器的语法。 三种内置...

    [原创]自己工作中常用的模板库,简化你的工作

    ★ 获取任意类型函数的各种特征,比如函数的所有参数Params_T,返回值类型Return_T,对象类型Object_T(如果是成员函数),第N个参数的类型GetFunctionParam,N&gt;, 这些类型都是包含修饰符(const/voliate/ref)的完整...

    .NET之美:.NET关键技术深入分析

    6.6 CLR——公共语言运行时 6.6.1程序集概述 6.6.2运行程序集 6.7 cLl——公共语言基础 6.8本章小结 第7章程序集 7.1程序集详探 7.1.1程序集模块 7.1.2清单和元数据 7.1.3程序集资源 7.2强名称程序集 ...

    java常用工具类的使用

    计算机发展到了今天,能成为原理的基本已经有人实现了,今天我们学习任何知识都是站在巨人的肩膀上,只要理解程序运行原理,算法的功能即可。底层的各种算法,各种数据结构已经被“巨人们”实现了,一般都放在程序...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例227 T分布常用计算 285 10.3 Commons IO组件简介 286 实例228 简化文件(夹)删除 286 实例229 简化文件(夹)复制 287 实例230 简化文件(夹)排序 288 实例231 简化文件(夹)过滤 289 实例232 简化文件的读写...

    【。net 专业】 面试题

    sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。 11.详述.NET里class和...

    Visual C# 2005程序设计自学手册 随书源码第一部分(共三部)

    5.10.2 泛型中的类型参数T 107 5.10.3 泛型的使用 108 5.11 匿名方法 111 5.11.1 什么是匿名方法 111 5.11.2 匿名方法的使用 111 5.12 迭代器 112 5.12.1 什么是迭代器 112 5.12.2 创建迭代器 113 ...

    JAVA核心知识点整理(有效)

    2.3. JVM 运行时内存 ................................................................................................................................. 24 2.3.1. 新生代 ....................................

    java核心知识点整理.pdf

    JVM 运行时内存 ................................................................................................................................. 24 2.3.1. 新生代 ........................................

Global site tag (gtag.js) - Google Analytics