黑马程序员技术交流社区

标题: 反射main方法有些不理解 [打印本页]

作者: HM王琦    时间: 2013-3-12 00:49
标题: 反射main方法有些不理解
  1. String startclassname=args[0];//这里是什么意思。
  2.                 Method mainMethod=Class.forName(startclassname).getMethod("main", String[].class);
  3.                 mainMethod.invoke(null,(Object)new String[]{"123","234","2345"});
复制代码

作者: 夏晓彤    时间: 2013-3-12 01:15
本帖最后由 夏晓彤 于 2013-3-12 01:36 编辑

楼主看main方法public static void main(String[] args) {}
args是一个String类型的数组
当你没给他传参数时它的张长度为ol
startclassname。这是一个String类型的变量,String startclassname=args[0],我们在运行时要改数组args传一个类名,你穿进去那个类的名字,执行到
   mainMethod.invoke(null,(Object)new String[]{"123","234","2345"});程序就会执行哪个类。
这里的"123","234","2345"对应的就是你要执行的类的String args[0]=“123”。。。//我这句如果说错了请大家帮指出来
楼主仔细看看,这断视频在张老师写完  mainMethod.invoke(null,(Object)new String[]{"123","234","2345"});这句代码后面会执行程序,出现角标越界异常,后面张老师会给String[] args传值。前面毕老师也讲过主函数,你也可以去看看
作者: HM王琦    时间: 2013-3-13 14:50
夏晓彤 发表于 2013-3-12 01:15
楼主看main方法public static void main(String[] args) {}
args是一个String类型的数组
当你没给他传参数 ...

谢谢,好想明白了。




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