Constructor<?> cons[]=demo.getConstructors();        try{            per1=(Person)cons[0].newInstance();            per2=(Person)cons[1].newInstance("Rollen");            per3=(Person)cons[2].newInstance(20);            per4=(Person)cons[3].newInstance("Rollen",20);        }catch(Exception e){            e.printStackTrace();        }比如上面的代码  0 1 2 3 是按什么顺序来的!?如何知道某一个索引位置的构造函数有几个参数以及参数类型呢?索引肯定不是随便写的,?

解决方案 »

  1.   

    API中有提到反射拿到构造函数是不保证顺序的,即不是按照你代码中定义的构造函数的顺序。获得构造函数的参数个数和参数类型。for(Constructor con:cons){
      Class<?>[] paramClasses=con.getParameterTypes();//获得构造函数的参数类型数组。
      System.out.println(paramClasses.length);//构造函数的参数个数
      for(Class<?> paramClass:paramClasses)
         System.out.println(paramClass);//每个参数的类型  
    }
      

  2.   

    楼主可以看看这个:
    http://bbs.csdn.net/topics/390183924