jdk1.4和jdk1.5的invoke方法的区别
jdk1.5:public Object invoke(Object obj,Object...args)
jdk 1.4 public Object invoke(Object obj,Object[] args)按1.4的语法,需要将一个数组作为参数传递给invoke方法时,数组中的每个元素分别对应被调用方法的中一个参数所以调用charAt()的代码页可以用jdk1.4改写为 char.invoke("str",new Object[]{1})
启动java程序的main方法的参数是一个字符串数组,public static void main(String args[]),通过反射方式来调用这个main方法时,是按1.4语法把数组打散成若干个单独的参数。所以给main方法传递参数时,不能使用mainMethod.invoke(null,new String[]{"xxx"})
解决①mainMethod.invoke(null,new Object[]{new String[]{"xxx"}})将数组放入一个数组中打开还是一个数组
②mainMethod.invoke(null,(Object)new String[]{"xxx"})把数组当做对象看待
本文详细对比了JDK1.4和JDK1.5中invoke方法的不同,主要关注参数传递方式的变化。在JDK1.5中,引入了varargs特性,使得调用方法时可以更灵活地处理参数数组。文章还提供了如何使用JDK1.4语法调用接受字符串数组参数的main方法的解决方案。
246

被折叠的 条评论
为什么被折叠?



