卸载静态字段

2022-09-04 20:57:31

我有一个java类,它使用复杂的静态字段,这些字段需要特殊操作,以便GC安全地清理它们。close()

对于静态字段的初始化,我使用块。但是我现在不知道如何安全地卸载静态字段,以便我可以在GC清理字段之前调用该方法。staticclose()

有没有办法卸载静态字段,类似于静态初始化块?


答案 1

没有办法做你所要求的事情,因为静态块在类被加载时被初始化,finalize()只在对象上工作。

请考虑将静态变量及其中的复杂操作替换为 Singleton 类及其实例。

这样,您就可以使用方法来执行操作。finalize()close()


答案 2

在 Web 应用程序中,您将使用 ServletContextListener