Java反射的一个小问题
来源:互联网 发布:网络分离器哪个牌子好 编辑:程序博客网 时间:2024/06/06 11:36
这几天写代码的时候遇到这么个有关反射的问题
可以通过这个方式来获取泛型中的类型
Type superClass = getClass().getGenericSuperclass();
if(superClass instanceof ParameterizedType) {//判断是否有参数
ParameterizedType parameterizedType = (ParameterizedType) superClass;Type [] typeArgs = parameterizedType.getActualTypeArguments(); //getActualTypeArguments方法返回表示此类型实际类型参数的 Type 对象的数组if(typeArgs != null && typeArgs.length>0) { if(typeArgs[0] instanceof Class) { clazz = (Class<T>) typeArgs[0]; }}
}
这里使用了Type类以及ParameterizedType这2个接口,
所以接下来可以研究一下这2个接口
首先是Type:Type 是 Java 编程语言中所有类型的公共高级接口。API文档中就是这么介绍的,在我看来这应该是和Class类差不多,
Class 类的实例表示正在运行的 Java 应用程序中的类和接口;而且Class类海实现了Type接口
Type接口有这么几个子接口GenericArrayType, ParameterizedType, TypeVariable, WildcardType
GenericArrayType 表示一种数组类型,其组件类型为参数化类型或类型变量。
ParameterizedType 表示参数化类型,如 Collection。参数化类型在反射方法首次需要时创建(在此包中指定)。当创建参数化类型 p 时,p 实例化的一般类型声明会被解析,并且按递归方式创建 p 的所有类型参数。
TypeVariable 是各种类型变量的公共高级接口。类型变量在反射方法首次需要时创建。
WildcardType 表示一个通配符类型表达式,如 ?、? extends Number 或 ? super Integer。
API上只是说了getActualTypeArguments方法返回表示此类型实际类型参数的 Type 对象的数组,但具体是什么样的,都有些什么值,都没有说,
通过实验表明这个返回的Type数组确实是当前的参数,参数个数和数组长度一致,数组的顺序也和参数顺序一致。
- Java反射的一个小问题
- java中的反射以及一个小问题
- 一个java的小问题
- 关于.net中反射的一个小问题
- 一个小java反射程序,简单的调用方法。
- JAVA 反射机制,invoke调用用法一个小的用法
- 一个JAVA小问题
- 关于JAVA import 的一个小问题
- 关于JAVA的一个小问题--请老鸟们帮下忙
- 询问一个JAVA的小问题
- Java遇到的一个小问题
- java封装的一个小问题
- java反射的小例子
- 一个关于反射的小例子
- 反射机制的一个小实例
- java 反射的一个例子
- Java中的一个小问题
- 一个java开源小博客框架blog4j,基于注解、反射实现的小框架
- Google I/O大会 DataBinding数据绑定 MVVM设计模式
- 使用ps查看进程的资源占用
- svn修改新url地址方法(linux,windows,centos)
- 腾讯、阿里、华为的岗位薪资情况概述
- MySQL查看sql语句运行时间
- Java反射的一个小问题
- mongoDB 数据导入
- STL中的set容器的一点总结
- 使用FilenameFilter来找出目录下指定后缀的文件
- ATS 5.3.0中利用grep得到纯净的配置文件
- 状态机编程
- Linux下进程信息分析
- iOS 常用常用的id IDFA IDFV MAC UDID openUDID
- [ITU]H.264标准下载地址-HEVC(H.265)标准下载地址-一致性码流下载地址