• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

J2SE5.0 实例---变长参数

发布: 2007-7-01 18:47 | 作者: admin | 来源: | 查看: 11次 | 进入软件测试论坛讨论

领测软件测试网 变长参数(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)

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

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网