Java 类型信息 —— 获取泛型类型的类对象(.class)
2024-09-01 21:08:59
How to get a class instance of generics type T
考虑泛型类Foo<T>
,在其成员中,如果想获取类型(type)T
的类实例(class instance of type T),是不可以直接调用 T.class
的。原因在于,Java 语言无法获取泛型类型参数(T
)的运行时信息(不可以直接调用 T.class
)。
0. 常用解决方案
既然无法调用泛型类型参数的运行时类型信息,便在调用端,显示地传递该类的运行时类型信息进去(通过构造函数),一种惯用的解决方案如下:
class Foo<T> {
private final Class<T> type;
public Foo<T>(Class<T> type) {
this.type = type;
}
public static void main(String[] args) {
// 在客户端调用时,便会显得有些啰嗦
Foo<SomeClass> f = new Foo<SomeClass>(SomeClass.class);
}
}
1. Pure Java solution
最新文章
- c# json转换实例
- jquery的$.extend()、$.fn和$.fn.extend()
- Runner站立会议08
- dict.items vs six.iteritems
- 反射中getMethods 与 getDeclaredMethods 的区别
- 转:Struts标签checkbox使用总结(默认选择设置)
- nginx添加nginx_mod_h264_streaming-2.2.7模块编译报错
- GitHub之上传文件
- IP访问SQL数据库设置
- php基础知识【函数】(6)mysql数据库
- Lance老师UI系列教程第八课->;新浪新闻SlidingMenu界面的实现
- XJOI网上同步训练DAY6 T2
- javascript收集整理
- PHP 模板方法模式使用
- 2015 Multi-University Training Contest 4
- 【Tomcat】batch获得war包
- Spring第二篇【Core模块之快速入门、bean创建细节、创建对象】
- __block __weak
- 简述private,protected,public,internal修饰符的访问权限
- 微信小程序picker的坑
热门文章
- 安装php扩展(以swoole)为例
- Python:用户自定义异常
- Nginx(alias 和 root的区别)
- Python Pandas库的学习(一)
- python爬虫入门01:教你在 Chrome 浏览器轻松抓包
- Tomcat处理HTTP请求原理
- Python使用selenium实现网页用户名 密码 验证码自动登录功能
- HDU1811 并查集+拓扑排序
- [BZOJ3196] [Tyvj1730] 二逼平衡树(线段树 套 Splay)
- [bzoj3436]小K的农场_差分约束