Java 参数中的3个点是什么?/什么是可变算术(…)参数?
我想知道Java 参数中的3个点是什么?/什么是可变算术(…)参数?,java,arrays,methods,parameters,arguments,Java,Arrays,Methods,Parameters,Arguments,我想知道…的参数在Java中是如何工作的。例如: public void method1(boolean... arguments) { //... } 这像一个数组吗?我应该如何访问参数?它被调用,或者简而言之var args,在Java 1.5中引入。 优点是在调用方法时可以传递任意数量的参数 例如: public void method1(boolean... arguments) throws Exception { for(boolean b: argument
…
的参数在Java中是如何工作的。例如:
public void method1(boolean... 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);
根据另一个答案,它是一个“varargs”参数。这是一个数组
许多人没有意识到的是两点:
- 您可以调用不带参数的方法:
method1()代码>
- 执行此操作时,参数为空数组
许多人认为,如果不指定参数,它将为null,但不需要进行null检查
您可以通过如下方式调用null来强制传递它:
method1((boolean[])null);
但我要说的是,如果有人这样做,让它爆炸。它是一个数组,您可以像使用变量名参数的数组一样访问它。
@jlordo我认为它在运行时被精确地转换为数组。:)我想知道为什么这个问题有这么多人投赞成票。这是重复的问题,答案很容易找到,等等。对我来说,这个问题类似于“单词‘private’是什么意思”这样的问题。@syb0rg为什么你在18天的时间里对这个问题重新标记了25次(编辑13-37),每次只需添加或删除相同的标记?为了改进你的答案,你可以添加有关如何获得传递值的信息:)@Pshemo刚刚添加了它。:)我不是Java用户,但这看起来更像是传递一个布尔数组(恰好是从null
转换而来的),而不是强制传递null。