Я создаю переменное количество AutoCloseable
объектов в блоке try-with-resources
.В любой точке выхода я хочу, чтобы все выделенные ресурсы были закрыты.
Я могу представить, что сам что-то пишу для этого, но существует ли существующая утилита, похожая на contextlib Python.ExitStack , которая будет закрывать выделенные ресурсы?Я ожидал бы, что это будет выглядеть так:
try (ExitStack exitStack = new ExitStack()) {
List<Widget> widgets = new ArrayList<>();
for (...) {
widgets.add(exitStack.add(new Widget()));
}
// use widgets
}
(Примечание: это не этот вопрос , потому что я не знаю, сколько ресурсов у меня будет заранее.
Привет, близкие избиратели Я не прошу библиотеку, я спрашиваю, как бы вы справились с задачей безопасного закрытия динамического числа AutoCloseable
с, если есть языковая функцияотлично, если есть стандартная библиотечная функция, также прекрасно, если мне нужно написать свою собственную, хорошо. Если бы вы хотели , рекомендовали бы стороннюю библиотеку общего пользования, которая имеет это втогда уж точно.