1. 可变长参数在定义的时候只能放在方法的最后一个参数位置,一个方法只允许一个可变长参数;
2.可变长参数本质就是数组。
3.调用的时候会优先选择固定长度参数的方法.
例子:
1.如下:
public class Test{
public static void test(String...param){
System.out.println("test_a");
}
public static void test(String[] param){
System.out.println("test_b");
}
}
上面的程序有错误,因为可变长参数实际上就是数组,所以,一个类中出现了两个方法名相同、参数也完全相同的方法,所以会有错误。
2.如下:
public class Test{
public void test(String[] ... p) {
}
public void test(String[] p) {
}
}
这样不会报错,因为,第一个test方法中,参数是类型为字符串数组的可变长参数,即String[][],而第二个test方法中,参数是类型为字符串的数组,即String[]。
3.如下:
public class Test{
public static void main(String args[]){
test(new String[]{"123","234","345"});
}
public static void test(String...params){
System.out.println("1234");
}
}
因为可变长参数实际上就是数组,所以,用可变长参数声明的方法,可以通过传入数组执行!