如何为invoke方法传递参数呢,按jdk1.5的语法,整个数组是一个参数,而按jdk1.4的语法,数组中的每个元素对应一个参数,因为jdk1.5要兼容jdk1.4的语法,所以当把一个字符数组作为参数传递给invoke方法时,javac会按jdk1.4
的语法进行处理。不能使用代码:mainMethod.invoke(null,new String[]{"xxx"});解决方法一种是写成mainMethod.invoke(null,new Object[]{new String[]{"xxx"}});//即封装成一个参数,另一种方法是写成:mainMethod.invoke(null,(Object)new String[]{"xxx"});//这样做等于告诉编译器说这是一个参数 ,编译器就不会把参数当数组看待,也不会把数组打散成若干个参数了. |