我创建了一个对象,该对象的 finalize 方法已被覆盖,以使用一些信息保存和关闭文件。该对象被另一个对象弱引用。我想在 GC 发生时保存对对象的一些更改。这就是为什么我覆盖了 finalize 的代码。
但是,当对象即将被垃圾回收时,会调用 finalize 方法。这可以在它有资格进行垃圾收集之后的任何时间。
我不想要这个,我想在 GC 发生后立即调用 finalize 方法,并且不应该有任何延迟。我可以设置任何 jvm 选项来实现这一点吗?我只能看到另一种方式是“System.runFinalization()”,但这似乎很俗气??有没有更优雅的方式?
谢谢