String...是java5之后的一种写法,表示后面的参数的个数和类型是不确定的,可以有0到多个Object对象,或者是一个Object[]。
因此,如果有一个方法method(String... str),我们还可以定义method()方法,但是不能再定义method(String[] str),会提示有重复方法的错误,这说明了参数为一个Object[] 这一点。
例如:
public class Test{
private Test(){
test();
test("a","b");
test(new String[]{"aaa","bbb"});
test("ccc");
}
//参数不同的test方法
private void test(){
System.out.println("test");
}
private void test(String...str){
for(String s:str){
System.out.println(s);
}
System.out.println();
}
public static void main(String[] args) {
new Test();
}
}
当调用test()方法时,会优先调用test(),如果不存在的话,会调用test(String... str)方法