我想请问一下怎么去动态实例化一个类, 当然这个类的构造方法是有参数的。
     无参的能用Class.forName("");  有参的怎么办啊, 帮帮我吧

解决方案 »

  1.   

    提供一个链接,跟你一样的问题。
    http://topic.csdn.net/t/20060719/18/4891407.html
      

  2.   


      public static Object newInstance(String className, Object[] args) throws Exception {
            Class newoneClass = Class.forName(className);         Class[] argsClass = new Class[args.length];         for (int i = 0, j = args.length; i < j; i++) {
                argsClass[i] = args[i].getClass();
            }         Constructor cons = newoneClass.getConstructor(argsClass);         return cons.newInstance(args);     }
      

  3.   


    public class Test {
      private String txt;
        public Test(String txt) {
            this.txt = txt;
        }
        public void  toP(){
         System.out.print(txt);
        }
    }public class Reflection{
      public static void main(String[] args) throws Exception 
      { 
      Object[] o={"close.wubq"};
      Test c=(Test)newInstance("close.wubq.Test",o);//包名+类名
      c.toP();
      } 
      public static Object newInstance(String className, Object[] args) throws Exception {
            Class newoneClass = Class.forName(className);
            Class[] argsClass = new Class[args.length];
            for (int i = 0, j = args.length; i < j; i++) {
                argsClass[i] = args[i].getClass();
            }
            Constructor cons = newoneClass.getConstructor(argsClass);
            return cons.newInstance(args);
        }
    }结果:close.wubq