Почему каждое замыкание пустой коллекции выполняется хотя бы один раз?

У меня есть функция, загружающая файлы с веб-сервера, который иногда получает пустую коллекцию. В функции, которую я вызываю для каждой из этой коллекции, и я ожидаю, что функция просто завершит работу, а каждое закрытие вообще не будет запущено. Проблема в том, что он запускается с пустым параметром имя_файла, и создание 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 ведет себя так и что мне делать вместо этого?

7
задан Fylke 28 May 2012 в 09:48
поделиться