WEB开发网
开发学院软件开发Java Java 编程的动态性,第 5 部分: 动态转换类 阅读

Java 编程的动态性,第 5 部分: 动态转换类

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 幸运的是,模拟 JVM 在运行应用程序的主类时所做的工作是相当容易的,Java 编程的动态性,第 5 部分: 动态转换类(2),您所需做的就是使用反射(这是在不得 第 2 部分 中介绍的)来首先找到指定类中的静态 main() 方法,然后使用预期的命令行参数来调用它

幸运的是,模拟 JVM 在运行应用程序的主类时所做的工作是相当容易的。您所需做的就是使用反射(这是在不得 第 2 部分 中介绍的)来首先找到指定类中的静态 main() 方法,然后使用预期的命令行参数来调用它。清单 1 提供了完成这个任务的示例代码(为简单起见,我省略了导入和异常处理语句):

清单 1. Java 应用程序运行器

public class Run 
{ 
  public static void main(String[] args) { 
    if (args.length >= 1) { 
      try { 
         
        // load the target class to be run 
        Class clas = Run.class.getClassLoader(). 
          loadClass(args[0]); 
           
        // invoke "main" method of target class 
        Class[] ptypes = 
          new Class[] { args.getClass() }; 
        Method main = 
          clas.getDeclaredMethod("main", ptypes); 
        String[] pargs = new String[args.length-1]; 
        System.arraycopy(args, 1, pargs, 0, pargs.length); 
        main.invoke(null, new Object[] { pargs }); 
         
      } catch ... 
      } 
       
    } else { 
      System.out.println 
        ("Usage: Run main-class args..."); 
    } 
  } 
} 

上一页  1 2 3 4 5 6 7  下一页

Tags:Java 编程 动态性

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接