A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张希强 中级黑马   /  2012-3-15 00:27  /  2364 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

通过反射获得泛型的参数类型后,如何通过所得结果创建该类型的一个实例?
首先写出如何获得参数类型:
public class GenericTest
{

        /**
         * @param args
         */
        public static void main(String[] args) throws Exception
        {
                     Method appMethod = GenericTest.class.getMethod("appType", Vector.class);
                     Type[] Types= appMethod.getGenericParameterTypes();
                     ParameterizedType pTypes= (ParameterizedType)Types[0];
                     System.out.println(pTypes.getActualTypeArguments()[0]);
                     Constructor[]  constructors=pTypes.getActualTypeArguments()[0].getClass().getConstructors();//这个行代码不能获得任何构造函数。
                }
public static void appType(Vector<Date> v  )
        {
               
        }

输出结果是:
class java.util.Date
我想通过这个类型获得其构造函数,之后再通过构造函数创建一个该对象的实例但是没有成功请问应该怎么办,看了帮助文档也没有成功。
主要原因是返回值是class java.util.Date无法通过这个字符串来获得该类型的字节码,也就没法获得构造函数。


2 个回复

倒序浏览
这问题别沉了,自己把它顶上去。
有人知道答案么
回复 使用道具 举报
张希强 发表于 2012-3-15 10:55
这问题别沉了,自己把它顶上去。
有人知道答案么

...就这么个带主方法的测试类  一个没有意义的方法你想做什么呢 简单的东西把他搞复杂化
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马