Object.finalize()
在Java 9中已被弃用,我认为我理解了原因,但我不知道如何替换它。
我有个实用类称为 Configuration,它基本上拥有应用程序中的所有东西,并持续存在于应用程序的整个生命周期。其中一个服务是记录日志:在第一次请求记录消息时,会创建一个记录器(由于各种传统原因,我的记录器是自己的 Logger 而不是标准的记录器),并将引用保存在 Configuration 对象的字段中,在应用程序终止时,无论是正常还是异常终止,都要释放任何记录器持有的资源(由于我的库的用户可以提供自己的实现,因此它是一个黑盒子)。
目前使用的方式是通过 Configuration.finalize()
方法调用 logger.close()
实现的。
我应该做些什么?