JAVA学习网首页 把生活查询网加入收藏 把JAVA学习网设为首页 联系方式
    Hi,JAVA学习
JAVA基础 设计模式 数据库 JavaBeans J2EE JavaDelphi 用户界面 综合文章  
J2SE5.0 实例---变长参数
时间:22/04/2007
作者:网络
来源:网络
小提示点这里把文章加入您的收藏夹,方便下次查看
设置文章字体大小:[ ]

变长参数(Varargs

与泛型一样,变长参数是C++中有而Java中没有的一种语言特性,在过去如果我们想向一个函数传递可变数量的函数,就必须首先将这些参数放入一个数组中,然后将数组传递给函数。就如同下面所作的一样:

Object[] arguments = { 640, "kb", "anybody", "Bill Gates" };

String result = MessageFormat.format(

     "{3}:{0,number,integer}{1} ought to be enough for {2}  ",

     arguments);

J2SE5.0中,参数仍然是被放入一个数组中传给对应的方法,但是不同的是,你不再需要手动的创建数组,而是只需要将那些参数罗列出来,其他的工作由虚拟机替你完成。所以现在我们可以这样写:

String result = MessageFormat.format(

            "{3}:{0,number,integer}{1} ought to be enough for {2}  ",

            640, "kb", "anybody", "Bill Gates");

我们通过一个示例函数来说明使用变长参数函数的定义。这个函数打印出一个人养的几条狗的名字。

private void printDogNames(String... dogs)

{

  System.out.println("I have " + dogs.length + " dogs:");

  for(String dogname:dogs)

  {

     System.out.println(dogname);

  }

}

事实上变长参数dogs是一个数组。

一个函数的参数中只能有一个变长参数,所以类似下面的定义是不合法的:

private void printDogNames(String... dogs,float... dogage)

如果决定把函数参数设置为可变长度的,你必须想到这样一种情况,就是调用的程序很可能会不给你传任何的参数,这个时候作为参数的数组length0,而这在语法上是完全合法的,所以你必须在函数定义中考虑到这种情况。


上一篇:J2SE 5.0实例---原生类型的autoboxing和auto-unboxing

下一篇:J2SE5.0实例---注释(annotation)

  • 我的RMI实践
  • 设计模式在EJB中的应用(转帖)
  • spring in action is released!
  • Java常见问题集锦(来自Sun中国官方站)
  • webwork2在weblogic下的中文问题解决
  • javabean与ejb的区别
  • JAVA:配置文件读取器
  • 一片把SWT批判的体无完肤的文章
  • InatallationCVSinJbuilder5forwin2000
  • 小议学习java的浮躁心态-分析篇
  • 从SP提供给CP的接口看SP的实力
  • J2EEvs.Microsoft.NET(5)
  • Java语言语法-控制结构
  • 使用EclipseME开发J2ME程序
  • OOP: 继承以及多态
  • 从一个ConnectionPool的实现看Design Pattern的运用 (六)
  • Block.java---BallGame
  • WEBLOGIC+ORACLE+JBUILDERLINUX与WINDOWS平台傻瓜入门一步步走(1)
  • 返回】 【顶部】 【关闭
    Copyright © 2005-2010 www.594k.com All Rights Reserved.
    版权所有:JAVA学习网 备案序号:皖ICP备06004238号