2013-02-06 62 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); 

但我说,如果有人这样做,让它爆炸。