对接收数组参数的成员方法进行的反射,其接收的只能是个数组,如果是new String[""],1.4会把它打散成一个个的去处理,而1.5兼容1.4的语法,所以在接收这种类型的数组时 ,必须把它打包成一个对象或对象数组,这样就不会出现在invoke方法时,提示参数个数不同的错误。
第一种方式:mainMethod.invoke(null,new Object[]{new String[]{"XXX"}});//将字符串数组作为object数组的一个元素。
第二种方法:mainMethod.invoke(null,(Object)new String[]{"XXX"});//此时,编译器会作特殊处理,编译时不把参数当做数组看待,也就不会数组打散成若干个参数了。
|