A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黄基焜 于 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)就行了。这是为什么呢?

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马