博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java利用反射来获取一个方法的 范型化参数 Vector<Integer>的类型
阅读量:4680 次
发布时间:2019-06-09

本文共 898 字,大约阅读时间需要 2 分钟。

假设有如下类

class   A

{

     public  void   show(Vector<Integer> v)  {}

}  

在我们不知道Vector中数据的类型的时候 这时候我们只知道这个方法的名字  和参数的个数 ,我们来获取 范型化的实际类型 。 

我们不可能通过 Vector对应的Class类来反射出  泛型集合中的类型  ,但是 我们却可以通过 这个方法所对应的Method类来实现 。

具体如下  :

import java.lang.reflect.Method;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Vector;

public class Test3

{
 public static void main(String []args) throws SecurityException, NoSuchMethodException
 {
  Method  m=A.class.getMethod("show", Vector.class) ;      //反射获得show方法的Method对象
  Type[]t=m.getGenericParameterTypes() ;      //获得范型参数的 一个Type数组  Type是Class类的基类 , , <D>,   这些都是 实现Type的子接口
  ParameterizedType p=(ParameterizedType)t[0];     //强制转换成Type的子接口 ParameterizedType类型 因为这个接口又可以获得 范型化集合中元素的类型    System.out.println(p.getRawType());                     //获得集合的类型 
  System.out.println(p.getActualTypeArguments()[0]);   //获得集合中元素的类型
 }

}

 

 

 

转载于:https://www.cnblogs.com/mosatsu/archive/2012/02/07/2466800.html

你可能感兴趣的文章
Python3 的列表
查看>>
javaee 第14周
查看>>
iOS上的MapKit
查看>>
「提离职」算正确的加薪姿势么?
查看>>
最简单的C# Windows服务程序
查看>>
Linux下配置VNC
查看>>
hbase权威指南学习笔记--架构--存储
查看>>
禁用SettingSyncHost.exe
查看>>
Unity 镜子效果
查看>>
MVC
查看>>
OpenCart框架运行流程介绍
查看>>
webstorm使用技巧
查看>>
4273_NOIP2015模拟10.28B组_圣章-精灵使的魔法语
查看>>
简单的验证码识别之Tess4j
查看>>
day1 联合权值
查看>>
BigData07_08 异常Exception
查看>>
CSS兼容IE6,IE7,FF的技巧
查看>>
AI初探
查看>>
flask模板应用-自定义错误页面 --
查看>>
20172319 2018.03.12-19 《程序设计与数据结构》第2周学习总结
查看>>