参数中的3个点是什么?/什么是变量arity(…)参数?

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

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

这是一个array吗? 我应该如何访问参数?

它在Java 1.5中引入了名为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:

 method1((boolean[])null); 

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