jos*_*hlf 6 java enforcement try-with-resources
我有一个实现AutoCloseable的类,旨在与Java 7的新try-with-resources构造一起使用.但是,我无法找到一种方法来保证我的类的用户使用try-with-resources.如果没有发生这种情况,那么我的班级将无法自行关闭,并且会发生不好的事情.有没有办法 - 语言构造或其他 - 来强制执行此操作?甚至能够检测我是否在try-with-resources块中,以便我可以抛出异常(如果不是)会很好(尽管编译时构造会更好).
谢谢!
不幸的是,没有办法保护自己免受用户愚蠢行为的影响。
您可以实现finalize要调用的方法close;这样,您可以确保至少在对象被垃圾收集时关闭资源,即使您不知道何时(或是否)发生这种情况。
如果您可以对项目的使用方式进行限制,那么您也许可以使用面向方面的编程来强制实施一些策略,但这样您就不再真正使用 Java 了。
| 归档时间: |
|
| 查看次数: |
1029 次 |
| 最近记录: |