如何将多个字符串参数传递给groovy中的函数

时间:2017-08-31 12:35:46

标签: java groovy

我正在尝试将多个字符串作为参数传递给函数

功能

noreturn

描述

向此网格添加一行列标题。 这应该在列上每个维度调用一次,并且每个维度的标题长度应匹配。

来自Groovy的示例调用,从2016财年和2017财年增加1月,2月,3月:

void addColumn(java.lang.String... headers)

所以如果我像上面的例子一样传递参数它工作正常..我无法弄清楚在groovy中动态传递它的方法吗?

2 个答案:

答案 0 :(得分:3)

在这种情况下,您始终可以传递一个字符串数组。你的方法

void addColumn(java.lang.String... headers)

使用varargs,这意味着您可以按原样调用此方法

void addColumn(java.lang.String[] headers)

Varargs在某些情况下很有用,因为它接受单个参数以及具有相同类型的n个参数。

如果要在Groovy中调用此方法,可以通过将列表强制转换为String[]来实现,例如

def addColumn(String... args) {
    args.each { println "Adding column ${it}..."}
}

println 'Ex 1:'
addColumn('Jan', 'Feb', 'Mar', 'Apr')

println 'Ex 2:'
addColumn(['Jan', 'Feb', 'Mar', 'Apr'] as String[])

运行此脚本将打印到输出:

Ex 1:
Adding column Jan...
Adding column Feb...
Adding column Mar...
Adding column Apr...
Ex 2:
Adding column Jan...
Adding column Feb...
Adding column Mar...
Adding column Apr...

我希望它有所帮助。

答案 1 :(得分:2)

您可以使用splat运算符:

CKFetchNotificationChangesOperation

在这种情况下会将集合展开为varags。