我正在一个块中创建可变数量的AutoCloseable
对象。try-with-resources
在任何退出点,我都希望关闭所有分配的资源。
我可以想象自己写一些东西来做到这一点,但是是否有一个类似于Python 的 contextlib.ExitStack的现有实用程序可以关闭分配的资源?我希望它看起来像这样:
try (ExitStack exitStack = new ExitStack()) {
List<Widget> widgets = new ArrayList<>();
for (...) {
widgets.add(exitStack.add(new Widget()));
}
// use widgets
}
(注意:这不是这个问题,因为我不知道我会提前有多少资源。
嘿密切的选民我不是要一个库,我是在问你如何完成安全关闭动态数量AutoCloseable
s 的任务,如果有它的语言功能,很好,如果有标准库函数,也很好,如果我必须自己写,很好。如果您想推荐一个常用的第三方库,其中包含它,那么当然可以。