博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 运行时如何获取泛型参数的类型
阅读量:5774 次
发布时间:2019-06-18

本文共 394 字,大约阅读时间需要 1 分钟。

在 Java 中对于下面最简单的泛型类

class A<T> {

    public void foo() {
        //如何在此处获得运行时 T 的具体类型呢?
    }
}

设想我们使用时

new A<String>().foo();

是否能在 foo() 方法中获得当前的类型是 String 呢?答案是否定的,不能。在 foo() 方法中 this 引用给不出类型信息,this.getClass() 就更不可能了,因为 Java 的泛型不等同于 C++ 的模板类,this.getClass() 实例例是被所有的不同具体类型的 A 实例(new A<String>(), new A<Integer>() 等) 共享的,所以在字节码中类型会被擦除到上限。

我们可以在 IDE 的调试时看到这个泛型类的签名

转载于:https://my.oschina.net/u/2791/blog/842507

你可能感兴趣的文章
ubunt1204安装配置vsftp
查看>>
javascript中的数组操作
查看>>
phpize的作用(资料整理)
查看>>
DPA 9.1.85 升级到DPA 10.0.352流程
查看>>
Linux_Centos中搭建nexus私服
查看>>
Scala基础入门-4
查看>>
git寻根——^和~的区别(转)
查看>>
loadView、viewDidLoad及viewDidUnload的关系
查看>>
列存储索引1:初识列存储索引
查看>>
[实战]MVC5+EF6+MySql企业网盘实战(18)——文件上传,下载,修改
查看>>
转载:《TypeScript 中文入门教程》 7、模块
查看>>
Android他们控制的定义(一)
查看>>
PHP程序员如何理解IoC/DI(转)
查看>>
探索 Java 热部署
查看>>
【译】Android应用架构
查看>>
OCP-1Z0-051-题目解析-第30题
查看>>
美团面试题:寻找数组置尾操作的最小值
查看>>
Senparc.Weixin.MP SDK 微信公众平台开发教程(十八):Web代理功能
查看>>
全概率公式
查看>>
(笔记)Mysql命令mysqladmin:修改用户密码
查看>>