参考:http://xhpscdx.iteye.com/blog/706946
JDK1.5引进了方法的可变参数,受到许多开发人员的青睐。
1,基本使用:
public class MethodNum {
public void method(String... strings) {
System.out.println("The argument num is : "+strings.length);
}
// public void method(String[] strings) {
// System.out.println("The argument num is : "+strings.length);
// }
public static void main(String[] args) {
MethodNum m = new MethodNum();
m.method();
m.method("s","2");
}
}
函数中直接认为,strings为string[]就行了。
2,可变参数方法与数组参数方法不好重载,认为方法重复
public class MethodNum {
public void method(String... strings) {
System.out.println("The argument num is : "+strings.length);
}
public void method(String[] strings) {
System.out.println("The argument num is : "+strings.length);
}
public static void main(String[] args) {
MethodNum m = new MethodNum();
m.method();
m.method("s","2");
}
}
3,同一类型的可变与不可不混搭一个不好重载。
public class MethodNum {
public void method(String... strings) {
System.out.println("The argument num is : "+strings.length);
}
public void method(String str, String... strings) {
System.out.println("The argument num is : "+strings.length);
}
public static void main(String[] args) {
MethodNum m = new MethodNum();
// m.method();
m.method("s","2","s");
}
}
编译器认为有歧义。
Array中的类文件有就使用了可变参数:
public static <T> List<T> asList(T... a) {
return new ArrayList<T>(a);
}
例子:
List<String> messages = Arrays.asList(
"Mares eat oats",
"Does eat oats",
"Little lambs eat ivy",
"Wouldn't you eat ivy too?");