Java Disposable 模式
2022-09-02 21:14:26
在Java 7之前最接近的只是“手动”尝试/最终块:
FileInputStream input = new FileInputStream(...);
try {
// Use input
} finally {
input.close();
}
当我第一次从 Java 背景开始使用 C# 1.0 时,我发现 C# 最擅长的语句之一。很高兴终于在Java 7:)using
您还应该考虑Guava中的Closeables
- 它使您不必担心引用是否为空(就像语句一样),并且可以选择在关闭时引发“日志并吞咽”异常,以避免任何此类异常有效地“覆盖”从try块中抛出的异常。using
处置模式的整个目的是支持 C# 的独特模式。Java在7之前没有类似的模式。using (temporaryObject)
所有具有资源的 Java 对象都通过手动关闭包含资源的对象来支持处置模式。