反射取得构造方法的数组是按什么顺序来的!?
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