java - java中封闭的资源应该如何表现?
问题描述
我有一个 Java 类,它在内部拥有一个 Closeable 资源。这意味着我的类还实现了 Closeable 接口并在其自己的 close() 方法中关闭了内部资源。
我的类在关闭后的预期行为是什么,通常是 Java 中的任何已关闭对象?我看到该对象处于失效状态,其内部已关闭,但客户端仍对其有引用。IMO 访问它是一个编程错误,但错误会不时发生,所以即使在这种情况下,行为也应该是合理的......
我是不是该?
- 在所有方法调用上抛出异常,例如:IllegalState
- 闭上眼睛就像什么都没发生一样,让异常从关闭的资源中通过?
什么是规范的 Java 方式?
解决方案
在关闭内部资源后尝试访问内部资源时应该抛出异常,IllegalStateException 就可以了。值得注意的一件事是,您可以在 try-with-resources 中使用 Closeable,以进一步确保一旦对象超出范围,它就会关闭。
推荐阅读
- python - 数组python中替换字符串的问题
- php - 重定向到来自 PHP 中 API 的 JSON 数组响应中返回的 url
- numpy - 使用 cython 加速数组合并计算
- rxjs - RxJS过滤和选择/取消选择复选框列表
- c++ - 如何在 Poco 中将工作 HTTP 代码转换为 HTTPS
- php - 如何让我的静态网站在 wamp 中公开
- javascript - 如何使用关键细节修改嵌套对象的属性
- python - 如何在python中完成id号生成器代码
- android - 如何在自定义对话框类中使用 getActivity.getLayoutInflater()
- ios - 创建一个 Facebook 登录按钮,如 Apple Signin