我在使用Class.forName()时报错了,因为我想实例化的类是Tasktable,它的构造函数带参,我直接就是用
Class c = (Class)Class.forName("Tasktable").newInstance();
我不知道带参的类怎么用反射,请各位指教!!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【jidushanbojue】截止到2008-07-21 11:02:04的历史汇总数据(不包括此帖):
    发帖的总数量:16                       发帖的总分数:220                      每贴平均分数:13                       
    回帖的总数量:16                       得分贴总数量:2                        回帖的得分率:12%                      
    结贴的总数量:16                       结贴的总分数:220                      
    无满意结贴数:8                        无满意结贴分:170                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:50.00 %               无满意结分率:77.27 %                  
    敬礼!
      

  2.   

    Class.forName("Tasktable").newInstance(); 得到的是Tasktable的对象,不是Class类的对象。
      

  3.   

    Class.forName()  里面的类因该是带完整包名的
    比如
    package xclass t
    {}就应该Class.forName(“x.t”)
      

  4.   

    假设你的构造函数是两个String,那么Class[] params = new Class[]{String.class,String.class};
    Object[] newparams = new Object[]{"test","test"};Class.forName("Tasktable").getConstructor(params).newInstance(newparams);
      

  5.   

    paras 是参数数组     Class[] c = new Class[paras.length];
        for(int i=0; i<paras.length; i++)
        {
            c[i] = paras[i].getClass();
        }
        Class.forName("Tasktable").getConstructor(c).newInstance(paras);