这个Groovy构造有什么问题?

yeg*_*256 16 groovy

这是一个简短的Groovy脚本:

import org.apache.commons.io.FileUtils;
def dir = new File("/mydir")
def files = FileUtils.listFiles(dir, new String[] { "java" }, false)
Run Code Online (Sandbox Code Playgroud)

它说:

No expression for the array constructor call at line: 2
Run Code Online (Sandbox Code Playgroud)

怎么了?

tim*_*tes 38

电话应该是:

def files = FileUtils.listFiles(dir, [ "java" ] as String[], false)
Run Code Online (Sandbox Code Playgroud)

Groovy默认使用Lists,as运算符可用于将这些列表强制转换为指定类型的数组(通常用于与java api交互,如本例所示)

[编辑]

顺便说一句,你可以用纯Groovy这样做:

def files = dir.listFiles().findAll { it.name ==~ /.*\.java/ }
Run Code Online (Sandbox Code Playgroud)

然后,您不需要Commons FileUtils