上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。