`...`在参数类型后有什么意义?

时间:2013-07-31 14:16:41

标签: java types parameters

我目前正在尝试让AsyncTasks在Android中运行,并且在许多不同的教程中一遍又一遍地找到了我以前从未见过的东西。

教程中的某些方法是传递的参数类似于String... arg0Integer... values

Here是一个教程,其中一些代码与我所描述的类似。

这是什么意思?为什么...在那里?

1 个答案:

答案 0 :(得分:2)

它被称为varargs。它适用于任何类型,只要它是签名中的 last 参数。

基本上,任何数量的参数都放入数组中。这并不意味着它等同于数组。

一种看起来像这样的方法:

void foo(int bar, Socket baz...)

将有一个名为baz的Socket(在本例中)的数组

因此,如果我们调用foo(32, sSock.accept(), new Socket()),我们将找到一个包含两个Socket对象的数组。

将其称为foo(32, mySocketArray)工作。但是,如果签名是数组的变量,则可以传递一个或多个数组并获得二维数组。例如,void bar(int bar, PrintStream[] baz...)可以使用多个PrintStream数组并将它们粘贴到单个PrintStream[][]中。

相关问题