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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hurryup 高级黑马   /  2013-11-21 23:37  /  1073 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.张老师在讲到用反射的方法去调用一个类中main方法时,我有点不明白,用类.main(参数)就行了啊,为什么要用反射的方式进行调用?
2.我发现用反射调用某个类的main方法时,没有给出目标类的名字,是如何做到的?如何关联的?
public class ReflectTest
{
        public static void main(String[] args)
        {
                //普通方式调用main方法
                //TestArguments.main(new String[]{"111","222","333"});
                String startingClassName=args[0];
                Method mainMethod=Class.forName(startingClassName).getMethod("main",String[].class);
                //mainMethod.invoke(null,new String[]{"111","222","333"});//运行时报错,参数个数不对,原因见上面问题
                mainMethod.invoke(null,new Object[](new String[]{"111","222","333"}));
        }
}

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 好吧,我承认。我还没有学到~帮不了你!~.

查看全部评分

1 个回复

正序浏览
1.反射调用可以通过传参实现,可以做成框架
    普通方式只能实现调用指定类的main, 换一个类就要重写一次方法
2.他明显是通过public static void main(String[] args)的参数传参的啊
    cmd是在编译的时候添加参数,eclipse是在运行的时候有个传参界面,视频里有吧

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马