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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 闫江龙 黑马帝   /  2011-12-31 23:54  /  2742 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 闫江龙 于 2012-1-1 01:52 编辑

String startingClassName = args[0];
Method mainMethod = Class.forName(startingClassName).getMethod("main", String[].class);
mainMethod.invoke(null, (Object)new String[]{"111","222","333"});   tartingClassName是什么?反射得到类中方法的话 Class.forName(这里不是应该写上类名完整路径吗?) 这里不太明白 怎么获取的?

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

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

4 个回复

倒序浏览
args表示从命令行读取的参数,这个参数 是传递给main()函数的,形如public static void main(String[] args){},所以args[0]是指你从命令行输入的第一个参数, 这里需要你手动输入完整的类名传递给Class.forName()~~能看明白吧~

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
要自己输入 ………… 了解了  string这样的就不能用了啊 必须有主函数喽
回复 使用道具 举报
本帖最后由 为梦而战 于 2012-1-1 20:04 编辑

       StartingClassName是要接收一个类名,以告诉下面的代码你要获取的是哪个类的main方法,
Class.forName()这个方法是要获得上面接收到的那个类的字节码,上面已经获得了这个类了,这里就不用写类的完全路径了。
    至于上面那个类是如何得到的那就的看实际情况了,如果类已写好放在电脑中了,可以通过getRealPath()方法获得此类的绝对路径。
如果类是后来写好的,那把类做成配置文件,通过指定配置文件来读取得到那个类。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

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