可变参数列表的表达是在数据类型后面加省略号。例如,
public void sum(int... n){}
可变参数有以下几个规则:
- 可变参数列表作为参数,方法调用时可以传入0个或多个参数,传入数组也可以。例如,
//以下两种引用方式是都可行的
sum(1,2,3);
int[] a = {1,2,3};
sum(a);
-
但是数组作为方法参数,方法调用时只能传入数组。
-
参数列表中如果有两个以上的参数,可变参数一定是在最后的, 并且一个方法中只能有一个可变参数。
-
在方法定义中,认为可变参数列表和数组重复定义,而不是重载。例如,
public void sum(int[] n){}
public void sum(int... n){}
这两种方式被认为是重复定义的。
- 可变参数列表所在的方法是最后被访问的。例如,
当以下两种方法同时存在时,没有可变列表所在的方法是会被优先访问的。
public int plus(int a, int b){} //优先访问
public int plus(int.. a){}