您的位置:首页 > 编程语言 > Java开发

Thinking in java 之:可变参数列表

2015-09-06 10:26 337 查看
有了可变参数,就再也不用显示地编写数组语法了,当你指定参数时,编译器实际上会自动为你去填充数组,你获取的仍是一个数组,这就是为什么print()可以使用foreach来迭代该数组的原因,但是,当你传递的参数已经是一个数组的时候,编译器发现你已经是一个数组了,便不会为你做任何的转换操作,所以,如果你有一组事物,可以把它们当做列表传递,而如果你已经有了一个数组,该方法可以把它们当做可变参数列表来接受。

实例:

public class OverrideVarargs {
public void ArrayTest(Object... args) {
for (Object o : args)
System.out.print(" " + o.toString());
System.out.println();
}

public static void main(String[] args) {
OverrideVarargs overargs = new OverrideVarargs();
// 如果已经是一个数组,编译器不会在其上执行任何转换操作,这里强制转换成Object型数组是为了移除编译器警告信息
overargs.ArrayTest((Object[]) new Integer[] { 7, 8, 9, });
// 编译器自动会去填充数组
overargs.ArrayTest(1, 2, 3, 4);
overargs.ArrayTest("11", "22", "33", "44");
overargs.ArrayTest();
}
}


打印结果:

7 8 9

1 2 3 4

11 22 33 44

从打印结果看出,将0个参数传递给可变参数列表是可行的,如果可变参数列表中没有任何元素,那么转变成数组的尺寸为0。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: