黑马程序员技术交流社区

标题: 关于反射一个类的main方法遇到的问题 [打印本页]

作者: zhouxp3323    时间: 2012-4-12 11:20
标题: 关于反射一个类的main方法遇到的问题
public class Person4 {
public static void main(String[] args) throws Exception{
  String s = "abcde";
  char ch = s.charAt(2);
  System.out.println(ch);
  
  String className = args[0];
  Method mainMethod = Class.forName(className).getMethod("main", String[].class);
  mainMethod.invoke(null, new String[]{"abc","bcd","efg"});          //这行运行为什么会出错??
     }
}

}
class Starting{
public static void main(String[] args){
  for(String arg:args){
   System.out.println(arg);
  }
}
}

我注释的那行代码,为什么运行的时候会出错啊,我用mainMethod激活这个类的main方法,传递了一个String类型的数组对象,运行的时候怎么会报错呢,编译的时候还没有什么问题,说传递的参数不对?


作者: 翟友伟    时间: 2012-4-12 11:32
new String[]{"abc","bcd","efg"})
默认为传了 三个 进来
要打包成一个  进来 就没问题了 (Object )new String[]{"abc","bcd","efg"})

作者: 翟友伟    时间: 2012-4-12 11:34
张老师视频中  特意提到过  
main方法 参数是需要一个String数组,
jdk中接收到之后将数组拆开之后再分别作为参数传递给main
既然它拆包我们就再包一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2