Каков наилучший способ эмулировать try-with-resources в Java 6?
Оказывается, почти никто не закрывает ресурсы в Java правильно. Программисты либо не используютtry-finally
блокировать вообще или просто поставитьresource.close()
вfinally
что также неверно (потому чтоThrowable
изclose()
может теньThrowable
от пробного блока). Иногда они ставят что-то вродеIOUtils.closeQuietly()
с является правильным только дляInputStream
, но не дляOutputStream
. try-with-resources
решает все эти проблемы, но все еще существует огромное количество проектов, написанных на Java 6.
Каков наилучший способ подражатьtry-with-resources
в Java 6? Сейчас пользуюсьГуава Ближе, что лучше, чем ничего, но все же намного страшнее, чемtry-with-resources
, Кроме того, существует шаблон, называемый шаблоном заимствования, но отсутствие лямбда-выражений в Java делает этот шаблон очень громоздким. Есть ли способ лучше?