黑马程序员技术交流社区
标题:
对接收数组参数的成员方法进行反射
[打印本页]
作者:
JAVADing
时间:
2015-7-1 18:16
标题:
对接收数组参数的成员方法进行反射
按照JDK1.5的语法,整个数组是一个参数;而按照JDK1.4的语法,数组中的每一个元素对应一个参数;
当把一个字符串数组作为参数传递给invoke方法时,javac会按照1.4的语法进行处理(因为1.5必须兼容1.4)即把数组打散成若干个单独的参数;所以在给main(String[ ] args)传递参数时不能使用:
mainMethod.invoke(null,new String[]{"xx","yy"}),否则会出现类型不匹配异常;
解决办法:
(1)mainMethod.invoke(null,new Object[] { new String[]{"xx","yy"} }),
(2)mainMethod.invoke(null,(Object)new String[]{"xx","yy"})---针对(2)---编译器会做特殊处理,编译时不把参数当做数组看待,也就不会把数组打散成若干个参数了;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2