转:http://j2eehyf.blog.51cto.com/886407/191194
可变长参数: 底层就是一个数组,只能出现在方法的形参里,不能定义
1)可变长参数的方法只有在必须的时候才会调用,如果有确切匹配的不可变
参数的方法,会优先选择不可变参数的方法;
2)如果两个方法都是可变长参数,都能匹配时,会编译通不过;编译器不知道调用哪个;
3)一个方法只能有一个可变长参数,并且这个可变长参数必须是该方法的最后一个参数;
例:
public class Demo {
public void spark(String key, Object... args) {
for (Object o : args) {
System.out.println(o);
}
}
public static void main(String[] args) {
Demo d = new Demo();
d.spark("key1", "value1111111");
d.spark("key2", "value1111111", "value222222");
d.spark("key3", "value1111111", "value222222", "value3333333");
}
}
可变长参数: 底层就是一个数组,只能出现在方法的形参里,不能定义
1)可变长参数的方法只有在必须的时候才会调用,如果有确切匹配的不可变
参数的方法,会优先选择不可变参数的方法;
2)如果两个方法都是可变长参数,都能匹配时,会编译通不过;编译器不知道调用哪个;
3)一个方法只能有一个可变长参数,并且这个可变长参数必须是该方法的最后一个参数;
例:
public class Demo {
public void spark(String key, Object... args) {
for (Object o : args) {
System.out.println(o);
}
}
public static void main(String[] args) {
Demo d = new Demo();
d.spark("key1", "value1111111");
d.spark("key2", "value1111111", "value222222");
d.spark("key3", "value1111111", "value222222", "value3333333");
}
}