我有一个从 Web 服务器下载文件的功能,该服务器有时会收到一个空集合。在该函数中,我在该集合上调用了每个函数,而我期望发生的是该函数只是退出,而每个闭包根本没有运行。问题是它确实使用一个空filename
参数运行,并且当它被提供一个目录而不是一个文件时,FileOutputStream 的创建会蓬勃发展。
def get(String baseUrl, List files, String targetDir) {
files.each { filename ->
// Goes BOOM on next line
def fos = new FileOutputStream(targetDir + File.separator + filename)
...
}
为什么 Groovy 会有这样的行为,我应该怎么做?