本帖最后由 黄基焜 于 2013-3-10 04:57 编辑
在张老师的视频中
String[] mainstr = {"111","222","333"};
Method mainMethod = Class.forName("com.itheima.day1.TestArguments").getMethod("main", String[].class);
//mainMethod.invoke(null,new Object[]{mainstr});
//mainMethod.invoke(null,(Object)mainstr);
mainMethod.invoke(null,new Object[]{mainstr});
张老师的意思是:
当用反射的方式传递一个String[]到其他类的main方法时,会把String[]中的元素拆分为多个单独的元素传递进去。
这里就有一个问题,main方法接收的是String[],而拆分后就变成了多个String对象,这样子参数类型就对应不上,不就传不进去了吗?
另外:就是这里为什么只能用Object强转,或者Object数组打包String数组呢?打包成一个2维的String数组也是不行的。
mainMethod.invoke(null,new Sting[]{mainstr});
还有,如果用类名调用时,却没有这个问题,直接TestArguments.main(mainstr)就行了。这是为什么呢? |