利用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泛型的实现机制,使 ...
随机推荐
- TalkingData游戏版本在Cocos2d-x 3.2使用
最近一直忙别的方面的事情,没有太关注cocos2dx的发展情况,竟然已经更新到了3.2的版本,总的来说3.2比较3.0在使用上会有一些路径的变成,包括ios的引用路径和android上的build的p ...
- 最全CSS3选择器
一,CSS3 选择器分类 二,选择器语法 1,基本选择器语法 选择器 类型 功能描述 * 通配选择器 选择文档中所以HTML元素 E 元素选择器 选择指定类型的HTML元素 #id ID选择器 ...
- CentOS 6.x 下Postfix和dovecot邮件服务安装和基本配置
1 卸载sendmail [root@mail~]# pstree | grep sendmail [root@mail~]# service sendmail stop [root@mail~]# ...
- .net反射详解
前言 之所以要写这篇关于C#反射的随笔,起因有两个: 第一个是自己开发的网站需要用到 其次就是没看到这方面比较好的文章. 所以下定决心自己写一篇,废话不多说开始进入正题. 前期准备 在VS20 ...
- Qt Quick分组属性案例
import QtQuick 2.4 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import QtQuick.Win ...
- 将Map转换为Java 对象
public class MapUtil { public static Object convert2Object(Class clazz,Map<String,Object[]> ma ...
- 替代 yunio , 推荐一个国外的云存储(同步盘) wuala(这个网站也挂了)——功能评测非常全面
替代 yunio , 推荐一个国外的云存储(同步盘) wuala 话说自从云诺开始收费后,我的文件便再没同步或备份过,前天没事便找了一下,发现一个国外的网盘,注册送 5 G 空间(对我来说同步日常文件 ...
- Couchbase 上手nosql for .net
由于项目需要,准备上手nosql数据库,比对了一番之后终于决定使用 couchbase.好了开始吧: 安装 地址:http://www.couchbase.com/get-started-develo ...
- onItemClickListener监听的整个item的点击。如何只监听那个framelayout的点击 onItemClickListener监听的整个item的点击。如何只监听那个framelayout的点击
已经知道了.复写getView()的时候,在内部Viewholder.length.setOnClickListener(匿名内部类) 然后新建一个接口方进去 ,然后外面的listView设置&l ...
- /etc/fstab自动挂载文件系统
打开 /etc/fstab 文件 [root@www ~]# vi /etc/fstab 默认情况下,fstab中已经有了当前的分区配置,内容可能类似: # <file system> & ...