/*** ParameterizedType*     1:getActualTypeArguments  得到带<> 参数的类型  比如java.lang.String*     2:java.util.List 得到带参数全限定名称*     3:如果属于自己的对象中对象且带有<>,返回自己的全限定名称*/
public class ParameterizedBean {List<String> list1;List list2;Map<String, Long> map1;Map map2;Map.Entry<Long, Short> map3;/*** Type[] getActualTypeArguments()*/public static void main(String[] args) {System.out.println("A===================================A");methodA();System.out.println("B===================================B");methodB();System.out.println("C===================================C");methodC();}private static void methodC() {Field[] fields =  ParameterizedBean.class.getDeclaredFields();for(Field f:fields){if(f.getGenericType() instanceof ParameterizedType){ParameterizedType pType = (ParameterizedType) f.getGenericType();System.out.println("变量:"+f.getName());Type t = pType.getOwnerType();if(t == null){System.out.println("OwnerType:Null     ");}else{       System.out.println("OwnerType:"+t.getTypeName());}}}}private static void methodB() {Field[] fields =  ParameterizedBean.class.getDeclaredFields();for(Field f:fields){if(f.getGenericType() instanceof ParameterizedType){ParameterizedType pType = (ParameterizedType) f.getGenericType();System.out.println("变量:"+f.getName());System.out.println("RawType:"+pType.getRawType().getTypeName());}}}private static void methodA() {Field[] fields = ParameterizedBean.class.getDeclaredFields();for (Field f : fields) {if (f.getGenericType() instanceof ParameterizedType) {ParameterizedType pType = (ParameterizedType) f.getGenericType();System.out.println("变量:" + pType.getTypeName() + "     ");Type[] types = pType.getActualTypeArguments();for (Type t : types) {System.out.println("类型:" + t.getTypeName());}}}}
}

运行结果

A===================================A
变量:java.util.List<java.lang.String>
类型:java.lang.String
变量:java.util.Map<java.lang.String, java.lang.Long>
类型:java.lang.String
类型:java.lang.Long
变量:java.util.Map.java.util.Map$Entry<java.lang.Long, java.lang.Short>
类型:java.lang.Long
类型:java.lang.Short
B===================================B
变量:list1
RawType:java.util.List
变量:map1
RawType:java.util.Map
变量:map3
RawType:java.util.Map$Entry
C===================================C
变量:list1
OwnerType:Null
变量:map1
OwnerType:Null
变量:map3
OwnerType:java.util.Map

ParameterizedType的基本用法相关推荐

  1. Java: ParameterizedType用法与简介

    先说结论: ParameterizedType 意为参数化类型 一.何为参数化类型? 先看个例子 1.先定义一个待反射的对象,然后用 field.getGenericType() instanceof ...

  2. Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法...

    Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法 www.MyException.Cn   发布于:2012-09-15 ...

  3. java 反射 Constructor、Method、Field 基本用法

    java反射主要从以下几个方面理解 理解 Class 类 理解 Java 的类加载机制 学会使用 ClassLoader 进行类加载 理解反射的机制 掌握 Constructor.Method.Fie ...

  4. SpringCloud OpenFeign 远程HTTP服务调用用法与原理

    在 openFeign 未出现前,Spring 提供了 RestTemplate 作为远程服务调用的客户端,提供了多种便捷访问远程 Http 服务的方法,能够大大提高客户端的编写效率.由于文章内容会使 ...

  5. 从fastjson的TypeReference用法,推导如何实现泛型反射

    1.fastjson带泛型反序列化的用法 fastjson 2.我们来看看TypeReference的源码是什么 TypeReference * 我们发现TypeReferenced的构造方法是保护方 ...

  6. Java5泛型的用法,T.class的获取和为擦拭法站台

    转载自  Java5泛型的用法,T.class的获取和为擦拭法站台 Java 5的泛型语法已经有太多书讲了,这里不再打字贴书.GP一定有用,不然Java和C#不会约好了似的同时开始支持GP.但大家也清 ...

  7. [转]Java5泛型的用法,T.class的获取和为擦拭法站台

    本文转载用于个人学习,原文链接:http://www.blogjava.net/calvin/archive/2006/04/28/43830.html 今天在做通用的DAO时,遇到需要获取 实体类的 ...

  8. 不藏了,这些Java反射用法总结都告诉你们

    摘要:Java反射是一种非常强大的机制,它可以在同一个系统中去检测内部的类的字段.方法和构造函数.它非常多的Java框架中,都大量应用了反射技术,如Hibernate和Spring.可以说,反射机制的 ...

  9. Java反射原理和实际用法

    背景 反射在Java中非常重要,是Java区别于其他编程语言的一大特性.Java中的AOP切面.动态代理等看起来像黑魔法一样的技术,就离不开反射.字节码等.这些技术能在不侵入原有代码的情况下,做一些增 ...

最新文章

  1. java 是怎么在中删除下拉列表_删除在一个下拉列表字段中选择的选项,并且不显示在该行中存在的其他下拉列表中不工作-jquery...
  2. 题目 1477:【蓝桥杯】【入门题】字符串输入输出函数
  3. 剑指offer:顺时针打印矩阵
  4. 【刷算法】判断链表是否有环以及返回入环节点
  5. 2018-2019-1 20165335 《信息安全系统设计基础》第六周学习总结
  6. hdu 2059(dp)
  7. poj 2456 Aggressive cows(贪心+二分)
  8. .Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示
  9. PHP陈明忠_《PHP网站开发案例教程》习题答案
  10. main spring启动_SpringBoot学习(一):为什么main方法启动类需要放在项目根目录...
  11. Facebook将照片3D化技术商用,强大的算法+海量的数据+移动端优化是工程亮点
  12. SLAM GMapping(5)运动模型
  13. git switch
  14. 一枚比特币30多万,家用电脑24小时挖矿,多久才能挖到一枚?
  15. Ubuntu 11.10搭建和配置Nagios
  16. Java实现棒子老虎鸡小游戏
  17. kali-beef工具(xss-stored)
  18. python 战棋游戏代码实现(1):生物行走和攻击选择
  19. POJ 3026 Borg Maze(BFS+最小生成树)
  20. 计算机中信息的表示方法 教案,计算机中的数的表示教案

热门文章

  1. 0-9的次方符号,有需要的小伙伴可以复制
  2. 通过DL4J使用递归网络
  3. 【转】entity、bo、vo、po、dto、pojo如何理解和区分?
  4. GX Work2 三菱 FX-Q系列IP地址配置
  5. Ubuntu安装qt4.8
  6. 引导滤波GuidedFilter
  7. ubuntu下amd超频工具_玩转GPU必备 – 我的Linux 工具箱
  8. colab的简单使用
  9. CAKEPHP3.7安装
  10. Juniper设备设置syslog传送