Java可变参数
JDK5开始引入可变参数,也即方法形参的个数是可以发生变化的,其定义格式为:
格式:属性类型...名字
int...nums
其底层原理就是在实际调用时将传入的可变参数装入一个数组当中。因此,访问此可变参数的实参与访问数组的方法一致,如下代码:
/**
* 可变参数方法示例
* @param nums 可变参数
* @return 所有参数之和
*/
public static int getSum(int ... nums){
int sum = 0;
for (int num : nums) {
sum += num;
}
return sum;
}
此外,定义可变参数方法还有如下两个要求:
- 一个方法最多只能有一个可变参数
- 如果一个方法有多个参数,那么可变参数要位于最后。
例如下面两个方法,第一个是符合要求的,而第二个方法定义则不符合要求:
/**
* 此方法定义是符合要求的
* @param num1
* @param nums
* @return
*/
public static int getSum(int num1, int ... nums){
for (int num : nums) {
num1 += num;
}
return num1;
}
/**
* 错误定义,vararg必须为最后一个形参
* @param nums
* @param num
* @return
*/
public static int getSum(int ... nums, int num){
return num;
}
小结
- 可变参数本质上就是一个数组
2. 作用:在形参中接收多个数据
3. 格式:数据类型…参数名称
举例:int…a
注意事项:
●形参列表中可变参数只能有一个
●可变参数必须放在形参列表的最后面