Java开发之道
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

细节16 伸缩自如——定义参数可变的方法

从JDK 1.5开始,Java中定义的方法,可以接受参数个数可变的形参列表,这个可变的参数列表既可以接受多个实参,也可以接受一个数组作为实参。在定义参数个数可变的形参时,需要在最后一个形参变量与数据类型之间添加一个省略号“…”,这样,该参数就是参数个数可变的形参,使用时该参数会被当成数组来处理。

注意

一个方法只能定义一个形参个数可变的参数,并且只能作为最后一个参数使用,在使用形参个数可变的方法时,为形参个数可变的参数传递实参时,既可以传递用逗号分隔的多个实参值,也可以传递一个数组作为实参值。

用逗号分隔的多个值作为可变参数的实参:

    public static int showSum (int ... values) { // 定义参数个数可变的方法,用于求多个整数的和
      int sum = 0;                                // 定义进行累加求和的变量
      for (int i = 0; i < values. length; i++) {
          sum = sum + values[i];                  // 进行累加求和
      }
      return sum;                                 // 返回求出来的和
    }
    public static void main (String[] args) throws Exception {
      System. out. println (showSum (10, 20, 30));
      // 调用showSum ()方法,求10、20与30的和并输出
    }

运行本示例,程序将输出方法showSum ()的返回值,该值是用逗号分隔的3个实参值10、20与30的和,即输出60。

使用数组作为实参,为可变参数赋值:

    public static int showSum (int ... values) {// 定义参数个数可变的方法,用于求多个整数的和
      int sum = 0;                              // 定义进行累加求和的变量
      for (int i = 0; i < values. length; i++) {
          sum = sum + values[i];                // 进行累加求和
      }
      return sum;                               // 返回求出来的和
    }
    public static void main (String[] args) {
      int[] arr = {10,20,30};                   // 定义并初始化数组
      System. out. println (showSum (arr));         // 调用showSum ()方法,用数组作为可变参数的实参
    }

运行本示例,程序将输出方法showSum ()的返回值,即输出数组arr中的元素值10、20与30的和——60。