Java中如何获得集合变量的集合中的类型参数
例如:Vector<Data> v = new Vector<Data>(); 这个里面我们是无法通过变量v而得到Vector中参数的类型,因为Vector<Data>在编译后字节码中去掉了类型,也就是说Vector<Data>和和Vector<T>的字节码是一样的,所以不能取得Vector中的参数类型,那我们可以通过把v作为一个参数传入一个方法中来获得Vector中的参数类型,因为通过反射获得的Method中有能够获得参数化的类型的方法,如下:
public class GenericTest { public static void main(String[] args) throws Exception { Method method = GenericTest.class.getMethod("getGenericType", Vector.class); Type[] type = method.getGenericParameterTypes(); ParameterizedType pType = (ParameterizedType)type[0]; System.out.println(pType.getRawType()); System.out.println(pType.getActualTypeArguments()[0]); } public static void getGenericType(Vector<Data> v){ } }
打印结果:
class java.util.Vector interface javax.xml.crypto.Data
转载于:https://www.cnblogs.com/duancanmeng/archive/2012/04/16/2524613.html
Java中如何获得集合变量的集合中的类型参数相关推荐
- java用一个方法对变量初始化_java中怎么给变量初始化?
展开全部 不同的变量初始化32313133353236313431303231363533e4b893e5b19e31333337613764方法不同. 变量包括:类的属性,或者叫值域 方法里的局部变 ...
- c语言中聚合类型的变量,c语言中的数据类型
更新中....... 在c语言中,仅有4种基本数据类型--整型,浮点型,指针和聚合类型(如数组和结构等).所有其他的类型都是从这4种基本类型派生而来. 1 . 整型 整型家族包括字符,短整型,整型和长 ...
- c语言中 定义结构体变量初始化,c++中的结构体:声明 定义 初始化
什么是结构体? 之前的学习中我们知道了数组是一个容器,而且是存放固定大小数据的容器,而且存放的元素的数据类型必须要一致. 比如数据库中有这样的一条记录学号 性别 年龄 成绩 地址应该怎样存放 结构体: ...
- Java类、变量、集合、数据结构基础知识
1.与类名同名的方法可以是构造方法或其他普通方法 2.final类的方法都不能是abstract的,因为final类不能被继承 3.Java区分大小写,只要不与关键字冲突都是合法的变量名.这里冲突是完 ...
- lambda表达式或者匿名函数中为什么要求外部变量为final
1.参考博客 关于Lambda表达式里面修改外部变量问题 JDK8之前,匿名内部类访问的局部变量为什么必须要用final修饰 2.匿名内部类 在jdk7之前,匿名内部类访问外部类的局部变量时,那么这个 ...
- java并发集合有哪些_java中常见并发集合有哪些?详细解析
关于java中有关集合的知识点,相信大家还是有所了解的.集合中所包含的知识点是非常丰富的,而且可以细分为很多类型.今天就来为大家介绍一下并发集合的有关知识,并且用实际代码为大家展示,一起来看看吧. 首 ...
- 5.0 java集合框架中的接口collection属于_JAVA集合框架 - osc_cyo2dovg的个人空间 - OSCHINA - 中文开源技术交流社区...
一.为什么要使用集合 单个数据,可以用变量保存: 多个数据,可以用数组保存: 但是对于存储多个数据且数量不确定的情况,使用集合: 二.集合和数组的区别 (1)数组: 1.只能保存同一种类型的数据: 2 ...
- Java中的Collection集合以及Collection集合实现类实例
Collection集合 集合概述 集合的体系特点 Collection集合常用API Collection集合的遍历方式 方式一:迭代器 方式二:foreach/增强for循环 方式三:lambda ...
- java判断集合为空_Java中判断集合类为空的方法
*****需要引入Spring的核心Jar包***** 工具类: org.springframework.util.CollectionUtils 方法: public static boolean ...
最新文章
- 56.4 AP!超越YOLOv4,更快更强的CenterNet2来了!
- matlab新手入门(四)(翻译)
- Microsoft Visual Studio 正忙
- leetcode 算法解析(一):260. Single Number III(C++版本和自己的注解)
- MongoDB 计划从“Data Sprawl”中逃脱
- 81. Search in Rotated Sorted Array II
- 三星Galaxy 首款运动腕表全新渲染图曝光
- javascript encodeURI和encodeURIComponent的比较
- Java-创建图片验证码descriptor
- Linux用户相关的操作命令
- c++ floor 赋值_C++之floor函数
- linux 0.11根文件系统,构建一个最小Linux根文件系统
- github 安装浏览器导航插件Octotree
- 网吧如何控制远程服务器,怎样在网吧控制一台远程的电脑
- 组合最优化——期中总结
- 45届ICPC昆明站热身赛C-Statues
- 送给1985年的朋友 ZT
- c++ 中. 和 -,波浪号 ~ 符号怎么用 ————很重要
- oracle默认导出dmp路径_Oracle导入导出dmp文件
- 根据cron表达式获取最近几次执行的时间
热门文章
- 如何让word档在同一页上显示两列或更多列
- tp5 修改配置参数 view_replace_str 无效
- 文件处理-写模式操作文件
- Golang 连接Kafka
- ubuntu下 mysql安装以后无法登陆的的解决方法((ERROR 1698 (28000): Access denied for user 'root'@'localhost'))...
- Servlet的调试
- JavaScript点击事件-一个按钮触发另一个按钮
- 在linux上一行代码不用写实现自动采集+hadoop分词
- C#3.0学习笔记(8)浅谈接口interface
- 家里路由器如何共享同一个ip