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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张龙欢 中级黑马   /  2013-6-10 14:36  /  1356 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

  4. class TestArguments{
  5.         public static void main(String[] args){
  6.                 for(String arg : args){
  7.                         System.out.println(arg);
  8.                 }
  9.         }
复制代码

评分

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

查看全部评分

4 个回复

倒序浏览
你的问题一般都太厉害   {:soso_e120:}
回复 使用道具 举报
袁梦希 发表于 2013-6-12 19:07
你的问题一般都太厉害

:'(:'(:'(:'(:'(
回复 使用道具 举报
本帖最后由 苑永志 于 2013-6-14 01:06 编辑

楼主没有贴出完整的代码,String startingClassName = args[0];中的args即是启动时的main方法中的参数String[] args,
  1. public class StaticMethodTest {
  2.         public static void main(String[] args) throws Exception {
  3.                 String startingClassName = args[0];
  4.                 Method mainMethod = Class.forName(startingClassName).getMethod("main", String[].class);
  5.                 mainMethod.invoke(null, (Object)new String[]{"111","222","333"});
  6.         }
  7. }
复制代码
如果是在命令行中,可以直接通过java StaticMethodTest com.itheima.ArgumentsTest的格式向main方法中传入一个字符串数组参数,即String[] args = {"TestArguments"}
如果是在Eclipse编辑器中,需要在Run Configurations中配置运行的参数,上面的com.itheima.ArgumentsTest

在本例中需要传入TestArguments类的完整类名,并通过Class.forName(startingClassName)获得该类对应的Class实例,并调用其静态方法。


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