首页 > 解决方案 > java中封闭的资源应该如何表现?

问题描述

我有一个 Java 类,它在内部拥有一个 Closeable 资源。这意味着我的类还实现了 Closeable 接口并在其自己的 close() 方法中关闭了内部资源。

我的类在关闭的预期行为是什么,通常是 Java 中的任何已关闭对象?我看到该对象处于失效状态,其内部已关闭,但客户端仍对其有引用。IMO 访问它是一个编程错误,但错误会不时发生,所以即使在这种情况下,行为也应该是合理的......

我是不是该?

什么是规范的 Java 方式?

标签: javaautocloseable

解决方案


在关闭内部资源后尝试访问内部资源时应该抛出异常,IllegalStateException 就可以了。值得注意的一件事是,您可以在 try-with-resources 中使用 Closeable,以进一步确保一旦对象超出范围,它就会关闭。


推荐阅读