Я новичок в Groovy. Раньше я использовал конструкцию "try-with-resources" в своем Java-коде во время работы с потоками ввода-вывода.
Не могли бы вы посоветовать, есть ли какой-либо аналог такой конструкции в Groovy?
Ответ 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
}