Теперь, когда `finalize()` устарел в Java, что следует использовать вместо него, особенно для глобального синглтона?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Теперь, когда `finalize()` устарел в Java, что следует использовать вместо него, особенно для глобального синглтона?

Сообщение Anonymous »

Код: Выделить всё

Object.finalize()
устарел в Java 9, и я думаю, что понимаю причины этого, но не могу понять, как его заменить.
У меня есть служебный класс под названием Configuration, который по сути имеет единственный экземпляр, которому принадлежит все в приложении и который существует на протяжении всего времени работы приложения. Одна из предоставляемых им услуг - это ведение журнала: при первом запросе на регистрацию сообщения создается средство ведения журнала (по разным причинам, связанным с устаревшими версиями, это мой собственный Logger, а не стандартный), со ссылкой, хранящейся в поле объекта Configuration, и при завершении приложения, нормальном или ненормальном, я хочу освободить все ресурсы, хранящиеся в средстве ведения журнала (это черный ящик, поскольку пользователи моей библиотеки могут предоставить свою собственную реализацию).
В настоящее время это достигается с помощью Configuration.finalize(), который вызывает logger.close().
Что мне делать вместо этого?

Подробнее здесь: https://stackoverflow.com/questions/477 ... ead-especi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»