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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梁胜海 中级黑马   /  2012-12-11 16:18  /  1465 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

运行环境:jdk1.7
原因:我无论怎么试,打印的语句最后总是有一句null。求解决,我看了半天我代吗没错。、
求解决:

要调用此类的Main方法:
class MainTest {
public static void main(String[] args) {
  for (String arg:args){
   System.out.println(arg);
  }
}
}
测试类:
public class MothodMain {
public static void main(String[] args)throws Exception {
  MainTest.main(new String[]{"111","222","333"});
  
  //这里传入我要调用某类的main方法的类名
  String startName=args[0];
  Method method=Class.forName(startName).getMethod("main", String[].class);
  String[] str={"haha","hoho","momo"};
  System.out.println(method.invoke(null, new Object[]{str}));
}
}

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
这是我打印的结果。上图

未命名.jpg (2.66 KB, 下载次数: 10)

未命名.jpg
回复 使用道具 举报
你的代码没有错,关键是method.invoke(null, new Object[]{str})是有返回值的,而你调用主函数的时候,由于返回值是void,所以这句返回了一个null,
你又把它打印了一遍,所以出现了一个null,如果你直接调用,不再次打印,就不会出现null了。

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

回复 使用道具 举报
张学永 发表于 2012-12-11 17:14
你的代码没有错,关键是method.invoke(null, new Object[]{str})是有返回值的,而你调用主函数的时候,由于 ...

小细节,我擦,没看到、谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马