当前位置:编程学习 > JAVA >>

反射取得构造方法的数组是按什么顺序来的!?

        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 是按什么顺序来的!?如何知道某一个索引位置的构造函数有几个参数以及参数类型呢?索引肯定不是随便写的,? --------------------编程问答-------------------- API中有提到反射拿到构造函数是不保证顺序的,即不是按照你代码中定义的构造函数的顺序。获得构造函数的参数个数和参数类型。

for(Constructor con:cons){
  Class<?>[] paramClasses=con.getParameterTypes();//获得构造函数的参数类型数组。
  System.out.println(paramClasses.length);//构造函数的参数个数
  for(Class<?> paramClass:paramClasses)
     System.out.println(paramClass);//每个参数的类型  
}
--------------------编程问答-------------------- 楼主可以看看这个:
http://bbs.csdn.net/topics/390183924 --------------------编程问答-------------------- 感谢楼上,我测的是按声明的顺序,,
上面的网址好像也没有一个明确的答案,
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,