Подтвердить что ты не робот

Groovy, альтернатива "попробуй с ресурсами"

Я новичок в Groovy. Раньше я использовал конструкцию "try-with-resources" в своем Java-коде во время работы с потоками ввода-вывода.

Не могли бы вы посоветовать, есть ли какой-либо аналог такой конструкции в Groovy?

4b9b3361

Ответ 1

Посмотрите документы на Groovy IO и связанные с ним Javadoc. Он представляет конструкции withStream, withWriter, withReader которые являются средством получения потоков с автоматическим закрытием

Ответ 2

Groovy 2.3 также имеет withCloseable который будет работать на всем, что реализует Closeable

Ответ 3

Простейшая попытка использования ресурсов для всех версий Groovy заключается в следующем (даже работает с интерфейсом AutoCloseable). Где класс Thing является закрываемым классом или реализует AutoCloseable.

new Thing().with { res ->
    try {
        // do stuff with res here
    } finally {
        res.close()
    }
}

Что эквивалентно в более поздних версиях Groovy:

new Thing().withCloseable { res ->
    // do stuff with res here
}