我正在尝试将多个字符串作为参数传递给函数
功能:
void addColumn(java.lang.String... headers)
Run Code Online (Sandbox Code Playgroud)
描述
向该网格添加一行列标题。这应该在列的每个维度上调用一次,并且每个维度的标题长度应该匹配。
来自 Groovy 的示例调用添加了 2016 财年和 2017 财年的一月、二月和三月:
builder.addColumn('2016', '2016', '2016', '2017', '2017', '2017')
builder.addColumn('Jan', 'Feb', 'Mar', Jan', 'Feb', 'Mar')
Run Code Online (Sandbox Code Playgroud)
因此,如果我像上面的示例一样传递参数,它就可以正常工作。我无法找出在 groovy 中动态传递它的方法?
在这种情况下,您始终可以传递字符串数组。你的方法
void addColumn(java.lang.String... headers)
Run Code Online (Sandbox Code Playgroud)
使用可变参数,这意味着您可以按原样调用此方法
void addColumn(java.lang.String[] headers)
Run Code Online (Sandbox Code Playgroud)
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[])
Run Code Online (Sandbox Code Playgroud)
运行此脚本将打印到输出:
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...
Run Code Online (Sandbox Code Playgroud)
我希望它有帮助。
| 归档时间: |
|
| 查看次数: |
14290 次 |
| 最近记录: |