Java1.5 new features ---Varargs 可变参数

1. 可变参数

C和C++是支持函数可变长度参数列表的两种语言。Java决定引入这方面的优势。只在必要时才使用可变参数列表。如果滥用它们,就很容易创建出制造混乱的源代码。C语言在函数声明中使用省略号(…)来代表“任意数量的参数(0个或者多个)”。Java也使用省略号,但是将它同类型和标识符一起使用。这里的类型可以是任意内容,如任意类、任意基本类型,甚至是数组类型。然而,当在一个数组中使用它时,省略号必须出现在类型描述之前和方括号之后。由于可变参数的自然属性,每个方法只能有一个类型作为可变参数,同时它必须出现在参数列表的最后。

下面这个例子中的方法以任意数量的基本整数作为参数,并返回它们的总和:

public int sum(int... intList)

{

     int i, sum;

     sum=0;

     for(i=0; i<intList.length; i++)  {

          sum += intList[i];

     }

    return(sum);

}

从被标记为可变的参数位置算起,所有传入的参数都被组合成一个数组。这使得测试传入了多少参数变得简单。需要做的事情就是引用数组的length属性,同时数组还提供对每个参数的便捷访问。

以下是一个对任意数量元素的数组中的所有值求和的完整示例程序:

public class VarArgsExample {

     int sumArrays(int[]...  intArrays}

     {

          int sum,  i, j;

          sum=0;

          for(i=0;  i<intArrays.length;  i++)  {

               for(j=0;  j<intArrays[i].length;  j++)  {

                    sum += intArrays[i] [j];

               }

          }

          return(sum);

     }

     public static void main(String args[])

     {

          VarArgsExample va = new VarArgsExample();

          int sum=0;

          sum = va.sumArrays(new int[]{1,2,3},

                                 new int[]{4,5,6},

                                 new int[]{10,16});

          System.out.println("The sum of the numbers is:  " + sum);

     }

}

这段代码跟在已建立的方法之后用来定义和使用一个可变参数。省略号出现在方括号之后(也就是说,在可变参数的类型之后)。在该方法中,参数intArrays只是一个数组的数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值