什么是可变长参数?
从Java5开始,Java支持定义可变长参数,所谓可变长参数就是允许在调用方法时传入不定长度的参数。就是比如下面的这个method1方法,可以接受0个或多个参数
public static void method1(String... args){
//.....
}
另外,可变长参数只能作为函数的最后一个参数,但其前面可以有也可以没有其他任何参数
public static void method2(String arg1,String... args){
//.....
}
遇到方法重载的情况怎么办呢?会优先匹配固定参数还是可变长参数的方法呢?
答案是会优先匹配固定参数的方法,因为固定参数的方法匹配度更高。
public class Test{
public static void method(String... args){
for(String s:args){
System.out.print(s);
}
}
public static void method(String arg1,Sting arg2){
System.out.print(arg1+arg2);
}
public static void main(String[] args){
method("a","b");
method("a","b","c","d");
}
}
输出:ab
a
b
c
d