Qual é a melhor maneira de emular try-with-resources no Java 6?
Acontece que quase ninguém fecha recursos em Java corretamente. Os programadores não usamtry-finally
bloco em tudo, ou basta colocarresource.close()
emfinally
que também é incorreto (porqueThrowable
declose()
pode sombraThrowable
do bloco try). Às vezes eles colocam algo comoIOUtils.closeQuietly()
com é apenas correto paraInputStream
mas não paraOutputStream
. try-with-resources
resolve todos esses problemas, mas ainda há um grande número de projetos escritos em Java 6.
Qual é a melhor maneira de imitartry-with-resources
no Java 6? Agora eu usoGuava Closer, o que é melhor que nada, mas ainda muito mais feio do quetry-with-resources
. Além disso, há um padrão chamado loan-pattern, mas a ausência de lambdas em Java torna esse padrão muito complicado. Existe uma maneira melhor?