黑马程序员技术交流社区

标题: 咨询下张老师讲解反射 调用主函数的问题 [打印本页]

作者: 奋发吧小白    时间: 2014-9-3 22:59
标题: 咨询下张老师讲解反射 调用主函数的问题
本帖最后由 奋发吧小白 于 2014-9-3 23:03 编辑
  1. 通过反射调用一个类的主函数:
复制代码

                String startingClassName = args[0];
                Method mainMethod = Class.forName(startingClassName).getMethod("main", String[].class);
                mainMethod.invoke(null,new String[]{"111","222","33"});

上面的 三句代码;
这一句  String startingClassName = args[0];是什么意思?
我理解为把一个数组的元素 直接赋值给一个String 类型的变量了。
但是为什么这个变量可以直接作为参数直接传递给Class.forName();来获取字节码?
不是Class.forName()内的参数只能是类的 全名吗?

谁能帮我解释下?

         

作者: 陈君    时间: 2014-9-4 00:02
public static void main(String[] args)   这句是main函数,可以看到args是一个数组,数组里存的是String
而args就是运行主函数的时候的参数   具体怎么在运行的时候加参数你看下张老师演示这道题的时候的步骤就知道了    他 是把一个类名做为参数传进来的
所以Class.forName的参数就是args[0]
Class.forName()内的参数必须是类的全名,不然获得不了字节码 会报异常的,你试下就知道了




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