事实证明,几乎没有人正确关闭 Java 中的资源。程序员要么根本不使用try-finally块,要么只是放入resource.close()也不finally正确的块(因为Throwable来自try 块的close()阴影)。Throwable有时他们把 with 之类的东西IOUtils.closeQuietly()只对 for InputStream,而不是 for OutputStream。try-with-resources解决了所有这些问题,但仍有大量项目是用 Java 6 编写的。
try-with-resources在 Java 6中模拟的最佳方法是什么?现在我使用Guava Closer,它比没有好,但仍然比try-with-resources. 此外,还有一种称为贷款模式的模式,但 Java 中缺少 lambda 使得这种模式非常麻烦。有没有更好的办法?