我们在编程时经常使用以下代码
Arrays.asList(value_1, value_2, value_3, ... value_n);
可以看作接受确定个数形参的函数,这就是Java的可变参数列表,是在Java SE5 引入的新特性
- 可变参数列表其实是一个数组,作为函数f()的形参时,函数f()既可以接受一个数组,也可以接受可变参数列表,编译器自动将可变参数列表变为数组
- 可变参数列表声明如下
void f(int... is);
import java.util.Arrays;
public class Main {
public static void f(int... is ) {
System.out.println(Arrays.toString(is));
}
public static void g(int[] is) {
System.out.println(Arrays.toString(is));
}
public static void main(String... args) { //可以把String[] 变成String...
int[] a = new int []{1,2,3,4};
f(1,2,3,4);
f(a);
//g(1,2,3,4); Compile Error
g(a);
}
}
输出结果:
[1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]