Java SE5加入了可變參數清單特性
參數能夠這樣定義。(Object…args)。可變參數用"..."來定義,args是可變參數的數組。舉個樣例:
package sample;
class A{}
public class NewVarArgs {
static void printArray(Object...args){
for(Object obj:args)
System.out.print(obj+" ");
System.out.println();
}
public static void main(String[] args){
printArray(new Integer(47),new Float(3.14),new Double(11.11));
printArray(47,
printArray("one","two","three");
printArray(new A(),new A(),new A());
printArray((Object[])new Integer[]{1,2,3,4});
printArray();
}
}
輸出結果為:
47 3.14 11.11
one two three
sample.A@a90653 sample.A@de6ced sample.A@c17164
1 2 3 4
當指定可變參數後,對于給定的可變參數實參,編譯器會用這些實參去填充一個參數數組。這就是為什麼args能夠用foreach去周遊。
但假設傳入的參數本身就是一個數組時。編譯器将接受這個數組作為可變參數清單。而不再為其外層包裝為一個新的數組。