0

我目前正在尝试让 AsyncTasks 在 Android 中工作,并且在许多不同的教程中一遍又一遍地发现了我从未见过的东西。

教程中的某些方法被传递的参数看起来像这样String... arg0Integer... values.

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

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

4

1 回答 1

2

它被称为可变参数。它适用于任何类型,只要它是签名中的最后一个参数。

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

一个看起来像的方法:

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

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

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

调用它是行不通foo(32, mySocketArray)的。但是,如果签名是数组的可变参数,您可以传递一个或多个数组并获得一个二维数组。例如,可以采用多个 PrintStream 数组并将它们粘贴到单个.void bar(int bar, PrintStream[] baz...)PrintStream[][]

于 2013-07-31T14:18:42.617 回答