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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yp324 中级黑马   /  2013-6-4 17:01  /  966 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yp324 于 2013-6-4 19:55 编辑

class Test
{
      public static void main(String[] args)
         {
               for(String arg:args)
                   {
                       System.out.println(arg);
                    }
          }
}
class ReflectTest {
        public static void main(String[] args)
        {
                String startingClassName=arg[0];//这里的这个args[0]是从哪里得来的?是ReflectTest类中的args[]中得来的,还是从Test类中的args[]中得来的。
                Method mainMethod=Class.forName(startingClassName).getMethod("main", String[].class);
                mainMethod.invoke(null, new Object[]{new String[]{"111","222","2344"}});
        }
}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

1 个回复

正序浏览
是ReflectTest类中的args[]中得来的,意思就是你把Test作为参数传给 ReflectTest类的main函数,
Method mainMethod=Class.forName(startingClassName).getMethod("main", String[].class);这一句中的forName()方法后得到的就是Test.class,等于是Test.class.getMethod()

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

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