参数中的3个点是什么/什么是可变arity(..)参数



我想知道...的参数在Java中是如何工作的。例如:

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

这像array吗?我应该如何访问参数?

它被称为Variable arguments,简称var args。优点是在调用该方法时可以传递任意数量的参数。

例如:

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);

根据其他答案,它是一个"varargs"参数。这是一个数组。

许多人没有意识到的是两点:

  • 您可以调用没有参数的方法:method1();
  • 当您这样做时,参数是一个空数组

许多人认为,如果不指定参数,它将为null,但null检查是不必要的。


您可以通过如下调用强制传递一个null:

method1((boolean[])null);

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

最新更新