String ... Groovy Notation代表什么?

时间:2013-08-12 13:54:16

标签: java groovy

以下功能的字符串... 是什么意思?

public UpdateSettingsRequest(String... indices) {
    this.indices = indices;
}

1 个答案:

答案 0 :(得分:3)

它被称为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[][]中。

奇怪的是,由于数组是对象,Object... foo可以使用任意数量的数组。