利用ParameterizedType获取泛型参数类型
//利用ParameterizedType获取java泛型的参数类型
public class Demo {public static void main(String[] args) {classTest();interfaceTest();}private static void classTest() {MySuperClass<Student, String> mySuperClass = new MySuperClass<Student, String>() {@Overridepublic void onSuccess(Student data) {}};//getClass().getGenericSuperclass()返回表示此 Class 所表示的实体的直接超类的 TypeParameterizedType type = (ParameterizedType) mySuperClass.getClass().getGenericSuperclass();sysoType(type);}private static void interfaceTest() {MyInterface<Student, String> myInterface = new MyInterface<Student, String>() {@Overridepublic void onSuccess(Student data) {}};ParameterizedType type = (ParameterizedType) myInterface.getClass().getGenericInterfaces()[0];sysoType(type);}private static void sysoType(ParameterizedType type) {/*com.bqt.generic.MySuperClass<com.bqt.generic.Student, java.lang.String>class sun.reflect.generics.reflectiveObjects.ParameterizedTypeImplclass com.bqt.generic.Studentclass java.lang.Classclass java.lang.Stringclass java.lang.Classcom.bqt.generic.MyInterface<com.bqt.generic.Student, java.lang.String>class sun.reflect.generics.reflectiveObjects.ParameterizedTypeImplclass com.bqt.generic.Studentclass java.lang.Classclass java.lang.Stringclass java.lang.Class*/System.out.println(type + "\n" + type.getClass());//返回表示此类型实际类型参数的 Type 对象的数组,泛型的参数可能有多个,我们需要哪个就取哪个Type[] targets = type.getActualTypeArguments();for (int i = 0; i < targets.length; i++) {System.out.println(targets[i] + "\n" + targets[i].getClass());}}}
public abstract class MySuperClass<T,V> {
public abstract void onSuccess(T data);}
public interface MyInterface<T,V> {void onSuccess(T data);}
public class Student {
}
利用ParameterizedType获取泛型参数类型的更多相关文章
- JAVA基础_反射获取泛型参数类型
我经常会想获取参数的实际类型,在Hibernate中就利用的这一点. domain: Person.java public class Person { // 编号 private Long id; ...
- Gson通过借助TypeToken获取泛型参数的类型的方法
最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下. 由于Java泛型的实现机制,使 ...
- Gson通过借助TypeToken获取泛型参数的类型的方法(转)
最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下. 由于Java泛型的实现机制,使 ...
- java 编程基础 反射方式获取泛型的类型Fileld.getGenericType() 或Method.getGenericParameterTypes(); (ParameterizedType) ;getActualTypeArguments()
引言 自从JDK5以后,Java Class类增加了泛型功能,从而允许使用泛型来限制Class类,例如,String.class的类型实际上是 Class 如果 Class 对应的类暂时未知,则使 C ...
- ParameterizedType获取java泛型参数类型
ParameterizedType getClass().getGenericSuperclass() 返回表示此 Class 所表示的实体(类.接口.基本类型或 void)的直接超类的 Type,然 ...
- 利用 js 获取地址栏参数
1.aspx页面,进行页面跳转 window.location.href = "ProviderInfo.aspx?ProviderID="+ProviderID; 2.Provi ...
- 获取List、Set、Map等字段的泛型参数
测试类加单元测试方法,运行结果在注释里面: package temp; import org.junit.Test; import java.lang.reflect.Field; import ja ...
- java 反射和泛型-反射来获取泛型信息
通过指定对应的Class对象,程序可以获得该类里面所有的Field,不管该Field使用private 方法public.获得Field对象后都可以使用getType()来获取其类型. Class&l ...
- 获取泛型的class 反射
最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下. 由于Java泛型的实现机制,使 ...
随机推荐
- python正则表达式入门
基本概念 使用正则表达式需要import re 表达式前加r避免转义 \d代表数字,\s代表空白字符,\w代表字母+数字. .代表任意单个字符 {m,n}代表前面字符至少出现m次,最多出现n次. (x ...
- 2.2.2 从 Path 中获取信息
Demo: import java.nio.file.Path; import java.nio.file.Paths; public class PathInfoTest { public stat ...
- 数据库备份工具mysqldump重要参数详解
1. --single-transaction InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:RE ...
- day06
一.configparser模块 configparser用于处理特定格式的文件,其本质上是利用open来操作文件 1.获取所有节点 import configparser config = conf ...
- win10 64bit 安装scrapy-1.1
0.环境说明 win10 64bit,电脑也是64bit的处理器,电脑装有vs2010 64bit,但是为了保险起见,只试验了32位的安装,等有时间了,再试下64位的安装.如无特殊说明,一切操作都是在 ...
- js监控键盘大小写事件
JavaScript键盘事件侦听 在使用JavaScript做WEB键盘事件侦听捕获时,主要采用onkeypress.onkeydown.onkeyup三个事件进行出来.该三个事 件的执行顺序如 ...
- python Template中substitute()的使用
在python中Template可以将字符串的格式固定下来,重复利用. Template属于string中的一个类,要使用他的话可以用以下方式调用: from string import Templa ...
- iOS开发——OC篇&特殊数据类型
一些特殊的数据类型 id.nil.Nil.SEL ,IMP Objective-C中有一些很有趣的数据类型经常会被错误地理解.他们中的大多数都可以在/usr/include/objc/objc.h或者 ...
- 转载——web前端相关资源总结
前端牛人博客:张克军.阮一峰.拔赤(李晶).拔赤(李晶)2.张鑫旭.梦想天空.阿当.泽飞.刘杰(嗷嗷).为之漫笔(李松峰).goddyzhao.hax的技术部落.周爱民.随网之舞.子鼠.司徒正美.ju ...
- ISO7816协议中几个时间
T=0协议 第一.初始等待时间: 复位应答时,卡片回复的连续两个数据的起始沿之间的时间间隔,这个时间间隔不超过9600etu, 在波 特率为9600是,该时间为1s 第二.GT: 两个连续字符之间的最 ...