在Groovy中创建字符串列表

Aar*_*lla 9 groovy list gstring type-coercion

Groovy中的以下代码将GStrings 添加到列表中:

List<String> args = [ 'cmd', "-Dopt=${value}" ]
Run Code Online (Sandbox Code Playgroud)

当我ProcessBuilder用这个列表创建一个时,我得到一个ClassCastException.什么是将列表元素强制转换为正确类型的常规方法?

tim*_*tes 18

或者,您可以这样做:

List<String> args = [ 'cmd', "-Dopt=${value}"] as String[]
Run Code Online (Sandbox Code Playgroud)

要么

List<String> args = [ 'cmd', "-Dopt=${value}"]*.toString()
Run Code Online (Sandbox Code Playgroud)

实际上,为什么你出于兴趣使用ProcessBuilder?Groovy增加了进行流程管理的方法,甚至还为List添加了三种execute 方法

你可以这样做(这是在OS X或Linux上):

def opt = '-a'

println( [ 'ls', "$opt" ].execute( null, new File( '/tmp' ) ).text )
Run Code Online (Sandbox Code Playgroud)

打印出我/tmp文件夹中的文件