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