转: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");
}
}
本文详细介绍了Java中可变长参数的使用规则及其底层实现原理。包括:只能出现在方法参数列表的最后,若存在确切匹配则优先使用固定参数方法等。通过示例展示了如何调用带有可变长参数的方法。
1885

被折叠的 条评论
为什么被折叠?



