黑马程序员技术交流社区
标题:
关于反射调用main方法
[打印本页]
作者:
何竹冬
时间:
2013-1-4 23:20
标题:
关于反射调用main方法
张孝祥老师在讲反射的时候调用main函数
mainMethod.invoke(null,new Object[]{new String[]{"a","b","c"});
而main函数接收的参数类型是String[] args传入的是Object为什么编译器不会报错。
作者:
冉世友
时间:
2013-1-4 23:35
用new Object[]{new String[]{"a","b","c"}}是为了使编译器把这个new String[]{"a","b","c"}当成一个数组传递进入,
(new String[]{"a","b","c"}就是String类型的数组啊)
不然直接传会导致new String[]{"a","b","c"}被拆成3个参数传入
作者:
嘿嘿小学徒
时间:
2013-1-5 00:32
new Object[]{new String[]{"a","b","c"}}
java中Object 是基类,任何对象都是它的子类,字符串数组自然也是!
你这儿考虑的不应该是main函数接收的参数,而是invoke函数接收的参数(String methodName,Object ...) 后面可以传入多个Object也可以传入一个,如果此时你传入一个字符串数组,虚拟机会把它转化成多个Object,自然不能被main方法接受!
当然也可以写成(Object)new String[]{"a","b","c"}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2