1. 可变长参数在定义的时候只能放在方法的最后一个参数位置,一个方法只允许一个可变长参数;
2. 可变长参数本质就是数组,因此如下方式的定义是错误的:
public class Thinking {
public void test(String... p) {
}
public void test(String[] p) {
}
}
3. 调用的时候会优先选择固定长度参数的方法,如下面代码的输出就是test2:
public class Thinking {
public static void test(String... p) {
System.out.println("test1");
}
public static void test(String p1, String p2) {
System.out.println("test2");
}
public static void main(String[] args) {
Thinking.test("a", "b");
}
}
4. 由于本质是数组,那么如下调用方式也是可以的:
public class Thinking {
public static void test(String... p) {
}
public static void main(String[] args) {
Thinking.test(new String[] { "a" });
}
}