参数中的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);
但我说如果有人这样做,就让它爆炸吧。