ParameterizedType这个类是参数化类型的意思, 它提供了getActualTypeArguments()方法获得泛型定义的参数类型, 就是获得<>中的类型
Method applyMethod=GenericTest3.class.getMethod("applyVector", Vector.class); //这句代码是得到了GenericTest3类中的方法, 这个方法接收一个vector集合参数
Type[] types=applyMethod.getGenericParameterTypes(); //这句代码是得到了泛型的参数类型集合, 因为可能传入的参数可能是多个
ParameterizedType pType=(ParameterizedType)types[0]; //这里是获得集合第一个元素类型的集合, 打印结果是java.util.Vector<java.util.Date>
你应该加上下面两句, 分别能得到你的原本的参数类型, 就是Vector, 你的泛型参数类型, 就是Date
System.out.println(pt.getRawType()); //ParameterizedType 中的getRawType() 可以获得实际的参数类型
System.out.println(pt.getActualTypeArguments()[0]); // getActualArguments()可以获得泛型的参数类型 |