黑马程序员技术交流社区

标题: 反射中关于invoke方法的调用 JDK1.5兼容JDK1.4的invoke方法 [打印本页]

作者: 黄锦成    时间: 2012-12-26 11:59
标题: 反射中关于invoke方法的调用 JDK1.5兼容JDK1.4的invoke方法
  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. }
复制代码
这个听了两次的讲解才明白了

作者: 许庭洲    时间: 2012-12-31 07:17
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2