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 paraInputStreammas 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?

questionAnswers(3)

yourAnswerToTheQuestion