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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.lang.reflect.Method;
  2. public class MethodTest {
  3. public static void main(String[] args) throws Exception {
  4. //调用某个类中的main方法(某个类),不能确定类
  5. //只有当用户传进类名,才能确定是哪个类中的main方法
  6. String startingClassName = args[0];
  7. //取得类的main方法
  8. Method mainMethod = Class.forName(startingClassName).getMethod("main", String[].class);
  9. //因为是静态方法,所以可以使用null
  10. //因为JDK兼容1.4,所以String数组会被打开,成为三个字符串参数,
  11.     //而main方法只是需要一个字符串数组参数,那就就错了
  12. //main方法需要的是String[]类型的参数,所以要加一层包装,
  13. //或者告诉编译器,我这是一个对象,别帮我拆包
  14. //mainMethod.invoke(null,new String[]{"111","222","333"});
  15. mainMethod.invoke(null,new Object[]{new String[]{"111","222","333"}});
  16. mainMethod.invoke(null,(Object)new String[]{"111","222","333"});
  17. }
  18. }

  19. class TestArguments{
  20. public static void main(String[] args) {
  21. for (String arg : args) {
  22. System.out.println(arg);
  23. }
  24. }
  25. }
复制代码
这个听了两次的讲解才明白了

评分

参与人数 2黑马币 +600 收起 理由
邹占顺 + 300
王广智 + 300 神马都是浮云

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马