我有一个从Web服务器下载文件的函数,有时会接收到空集合。在函数中,我对该集合调用每个元素,我期望发生的是函数只是退出,并且不运行each闭包。问题是当使用空的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会有这样的行为,我应该怎么做呢?