天天看點

java 可變參數清單

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去周遊。

但假設傳入的參數本身就是一個數組時。編譯器将接受這個數組作為可變參數清單。而不再為其外層包裝為一個新的數組。