`
txf2004
  • 浏览: 6882212 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java利用反射来获取一个方法的 范型化参数 Vector<Integer>的类型

 
阅读更多

假设有如下类

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类的基类 GenericArrayType, ParameterizedType, TypeVariable<D>, WildcardType这些都是 实现Type的子接口
ParameterizedType p=(ParameterizedType)t[0]; //强制转换成Type的子接口 ParameterizedType类型 因为这个接口又可以获得范型化集合中元素的类型 System.out.println(p.getRawType()); //获得集合的类型
System.out.println(p.getActualTypeArguments()[0]); //获得集合中元素的类型
}

}

分享到:
评论

相关推荐

    范型List Dictory增加事件功能

    范型List&lt;T&gt; Dictory&lt;key,Value&gt;增加事件功能 范型List&lt;T&gt; Dictory&lt;key,Value&gt;增加事件功能

    AIC的Java课程1-6章

    第3版 机械工业出版社&lt;br&gt; 教学内容和要求&lt;br&gt;知识点 重要程度 使用频度 难度&lt;br&gt;Java 入门 高 中 易&lt;br&gt;变量和运算符 高 高 中&lt;br&gt;控制结构 高 高 易&lt;br&gt;数组 高 高 中&lt;br&gt;方法 很高 高 中&lt;br&gt;封装 很高 很高 难...

    Java 泛型(Generics)使用说明

    &lt;br&gt;在实际应用中,如果能够灵活应用范型和反射,那么该Java程序员可以设计出非常好的东西来,从而解决实际开发简化开发过程的目的。比如,在EJB 2.0开发客户端应用时,如果使用范型和反射,可以把EJB 2.0的标准使用...

    java 带两个类型参数的泛型

    java 带两个类型参数的泛型 java 带两个类型参数的泛型

    java新特性简介.ppt

    自动装箱、拆箱&lt;br&gt;更优化的循环&lt;br&gt;可变长参数&lt;br&gt;枚举&lt;br&gt;静态引入&lt;br&gt;范型&lt;br&gt;Annotation(注解、注释)

    Phillip_Piper_ObjectListView

    C# List&lt;T&gt; 范型 对象列表&lt;br&gt;基于List&lt;T&gt;的Object ListView控件 &lt;br&gt;codeproject的开源代码&lt;br&gt;和datagridview一样的强

    Java 范型Java 范型.doc

    Java 范型Java 范型

    java1.5范型编程指南

    java1.5范型编程指南.docjava1.5范型编程指南.docjava1.5范型编程指南.docjava1.5范型编程指南.docjava1.5范型编程指南.doc

    JAVA范型指南中文版

    JAVA范型指南:讲述范型,范型通配符,范型方法,范型与久代码(无范型)的融合,范型的擦除与翻译等...

    java 泛型类的类型识别示例

    java 泛型类的类型识别示例 java 泛型类的类型识别示例 java 泛型类的类型识别示例

    一个很好的范型立例题

    Java范型机制 Java范型机制 Java范型机制 Java范型机制Java范型机制 Java范型机制

    Java 范型攻略篇

    Java 范型攻略篇

    Java使用反射来获取泛型信息示例

    主要介绍了Java使用反射来获取泛型信息,结合实例形式分析了java基于反射操作泛型信息的相关实现技巧与注意事项,需要的朋友可以参考下

    mono C#编译器带抽象语法树 *更新*

    内容同上个&lt;br&gt;解决AST输出时的一些bug&lt;br&gt;增加了几个语句的支持,&lt;br&gt;改进范型函数id的错误,&lt;br&gt;调用方法时未指示被调用表达式的错误

    用Java Socket实现一个简单的基于P2P范型的即时聊天系统。

    暂时仅仅设计了以下几个功能点: 1.点对点单人聊天; 2.多人在线同时聊天; 3.用户可以自由加入和退出系统; 4.具备用户在线状态监听;

    图片列表【范型】

    //将布局做成一个view vi = LayoutInflater.from(MainActivity.this).inflate(R.layout.item3, null); //实例化控件 final ImageView iv = (ImageView) vi.findViewById(R.id.iv); final...

    looly#hutool-site#泛型类型工具-TypeUtil1

    介绍获取方法的参数和返回值类型(包括Type和Class)获取泛型参数类型(包括对象的泛型参数或集合元素的泛型类型)方法首先我们定义一个类:public cla

    概观C++程序设计语言

    本文通过举例,介绍了C++在如下三个方面中的一些关键的概念:C++的设计、C++程序设计以及C++语言的技术性内容。C++是一门部分的面向系统编程、通用目的的程序设计语言;它支持高效的低级运算、数据抽象、面向...&lt;br&gt;

    Java 实现泛型List

    Java 实现泛型List的源码,基本实现了List接口的全部所有方法。欢迎大家发表自己的观点和建议。

    java范型视频

    泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是...

Global site tag (gtag.js) - Google Analytics