Java利用反射来获取一个方法的 范型化参数 Vector<Integer>的类型
来源:互联网 发布:淘宝灯具3c认证怎么办 编辑:程序博客网 时间:2024/05/18 16:18
假设有如下类
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]); //获得集合中元素的类型
}
}
- Java利用反射来获取一个方法的 范型化参数 Vector<Integer>的类型
- 利用反射获取方法的反回值类型和参数个数
- java利用反射来调用一个类的私有方法
- 利用反射获取一个类中的所有方法和该方法的参数
- 利用java反射获取泛型类的类型参数具体类对象
- ParameterizedType应用,利用java反射获取参数化类型的class实例
- 如何获取java中泛型参数的实际类型--反射获取
- java利用反射来调用一个类的私有方法和成员变量
- java中通过反射获取泛型的参数类型
- Java反射---getGenericSuperclass和ParameterizedType参数化类型的获取
- 利用Java反射机制调用含数组参数的方法
- 利用Java反射机制调用含数组参数的方法
- java中利用反射机制得到一个类的所有构造方法,成员方法机器参数的列表
- java开发中如何利用反射获取私有化的方法
- java开发中利用反射获取对象静态的方法
- Java反射,根据类名创建带参数的实例(获取参数类型,参数等)
- Java反射,根据类名创建带参数的实例(获取参数类型,参数等)
- java再复习——通过反射获取到方法的参数和返回值的泛型类型
- Android学习笔记之AutoCompleteTextView
- 配置Tomcat时出现"JAVA_HOME should point to a jdk not a jre”
- 对于大并发的思考
- linux下omfs文件系统的硬盘布局
- HDOJ 1232:畅通工程 并查集求解子图的个数
- Java利用反射来获取一个方法的 范型化参数 Vector<Integer>的类型
- CE/CS的同学们,你们身边是否有这样一种人?
- C语句常见的错误
- HDOJ 1863:畅通工程 Prim算法求解最小生成树
- 数独游戏
- Android应用开发系列——目录
- Linux 学习2 符号 比较
- Cf 101 Div.2
- TYVJ 1275-IXCEL表格