例子:
/**
* 变长参数列表
* 返回最大值
* @author HailongYao
*
*/
public class Longer {
//变长参数列表的声明方式为,在方法最后一个参数的类型后面加上省略号(...),
//指明最后一个参数可以重复零次或多次。
public static int max(int first, int... rest) { //第一个参数可以没有,第二个参数相当于一个数组
int max = first;
for(int i : rest) { // 合法,因为rest其实就是数组
if (i > max) max = i;
}
return max;
}
public static void main(String[] args) {
//声明这个 max() 方法时指定了两个参数,第一个是普通的 int 类型值,
//但是第二个可以重复零次或多次。下面对 max() 方法的调用都是合法的:
System.out.println(max(0));;
System.out.println(max(1, 2));;
System.out.println(max(16, 8, 4, 2, 1));
}
}
反编译之后的结果:
可以看出:输出时max函数的参数中,第一个传递的是一个int类型的值,第二个传递的是一匿名数组。