在研究反射的时候碰到一个问题如下:
当我在A类中申明了一个参数为字符串数组(String[] strArray)的构造函数,并且在main方法中用
getConstructor(String[].class) 或者 getConstructor(new Class)都无法获得相应的构造函数,
然而,当我声明的是参数为整形数组(int[] intArray)的构造函数时,却可以获得相应的构造函数。
谁能回答下嘛?十分感谢!
代码如下:
[code="java"]
//类A
public class A{
public A(String[] strArray){}
public A(int[] intArray){}
}
public class Main {
public static void main(String[] args) {
//完全没有问题,可以获得相应的A实例a
Constructor cnInt = Class.forName("A").getConstructor(int[].class);
int[] parasInt = {2,4};
A a = (A) cnInt.newInstance(parasInt);
//出现问题,无法获得A的实例a2
Constructor cnString = Class.forName("A").getConstructor(String[].class);
String[] parasString = {“2”,“4”};
A a2 = (A) cnInt.newInstance(parasString);
[/code]