2013-02-06 123 views
8

我在想如何在Java中使用...的參數。例如:參數中的3個點是什麼?/什麼是可變參數(...)參數?

public void method1(boolean... arguments) 
{ 
    //...  
} 

這就像是一個array?我應該如何訪問參數?

+1

它是一個數組,你可以像變量名爲'arguments'的數組那樣訪問它。 – jlordo

+0

@jlordo我認爲它在運行時轉換爲數組。 :) – PermGenError

+0

鍵入這個答案花費的時間比嘗試自己... – NominSim

回答

3

它被稱爲Variable arguments或簡稱var-args,在Java 1.5中引入。 優點是您可以在調用方法時傳遞任意數量的參數。

例如:

public void method1(boolean... arguments) throws Exception { 
    for(boolean b: arguments){ // iterate over the var-args to get the arguments. 
     System.out.println(b); 
    } 
} 

上述方法可以接受所有低於方法調用。

method1(true); 
method1(true, false); 
method1(true, false, false); 
+1

爲了改善你的答案,你可以添加關於如何獲得傳遞值的信息:) – Pshemo

+0

@Pshemo剛剛添加它。 :) – PermGenError

0

根據其他答案,這是一個「varargs」參數。這是一個數組。

很多人不知道的是很重要的兩點:

  • 您可以致電與的方法沒有什麼參數:method1();
  • 當你這樣做,該參數是一個空數組

許多人認爲如果不指定任何參數,它將爲空,但無效檢查是不必要的。


可以空要通過調用它像這樣通過:

method1((boolean[])null); 

但我說,如果有人這樣做,讓它爆炸。