WEB开发网
开发学院软件开发Java Java 编程的动态性,第3部分: 应用反射 阅读

Java 编程的动态性,第3部分: 应用反射

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 清单 2. 业务计划生成器的形参定义privatestaticfinalParameterDef[]PARM_DEFS={newBoolDef('c',"m_isConcise"),newIntDef('f',"m_initialRe

清单 2. 业务计划生成器的形参定义

private static final ParameterDef[] PARM_DEFS = { 
  new BoolDef('c', "m_isConcise"), 
  new IntDef('f', "m_initialRevenue", 10, 10000), 
  new FloatDef('g', "m_growthRate", 1.0, 100.0), 
  new StringDef('n', "m_productDescription") 
} 

有了得到允许的在一个数组中定义的形参,应用程序对参数处理代码的调用就可以像对一个静态方法的单个调用一样简单。为了允许除形参数组中定义的实参之外额外的实参(要么是必需的值,要么是可变长度的值),我将令这个调用返回被处理实参的实际数量。这样应用程序便可以检查额外的实参并适当地使用它们。最后的结果看上去如清单3所示:

清单 3. 使用库

public class PlanGen 
{ 
  private static final ParameterDef[] PARM_DEFS = { 
    ... 
  }; 
   
  public static void main(String[] args) { 
   
    // if no arguments are supplied, assume help is needed 
    if (args.length > 0) { 
     
      // process arguments directly to instance 
      PlanGen inst = new PlanGen(); 
      int next = ArgumentProcessor.processArgs 
        (args, PARM_DEFS, inst); 
       
      // next unused argument is output file name 
      if (next >= args.length) { 
        System.err.println("Missing required output file name"); 
        System.exit(1); 
      } 
      File outf = new File(args[next++]); 
      ... 
    } else { 
      System.out.println("\nUsage: java PlanGen " + 
      "[-options] file\nOptions are:\n c concise plan\n" + 
      "f first year revenue (K$)\n g growth rate\n" + 
      "n product description"); 
    } 
  } 
} 

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

Tags:Java 编程 动态性

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