Что случилось с конструкцией Groovy?

Это короткий Groovy script:

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

В нем говорится:

No expression for the array constructor call at line: 2

Что не так?

Ответы

Ответ 1

Вызов должен быть:

def files = FileUtils.listFiles(dir, [ "java" ] as String[], false)

Groovy использует списки по умолчанию, а оператор as может использоваться для принуждения этих списков к массивам определенного типа (часто для взаимодействия с java api, как в этом примере)

[править]

Как в стороне, вы можете сделать это с помощью чистого Groovy следующим образом:

def files = dir.listFiles().findAll { it.name ==~ /.*\.java/ }

Затем вам не нужно Commons FileUtils