我有一个
java类,它使用复杂的静态字段,它需要特殊的操作作为close(),以便它们被GC安全地清理.
对于静态字段的初始化,我使用静态块.但我现在不知道如何安全地卸载静态域,所以我可以在GC清理该字段之前调用close()方法.
有没有办法卸载静态字段,类似于静态初始化块?
没有办法做你所要求的,因为在加载类时静态块被初始化,finalize()只适用于对象.
考虑用Singleton类和它的一个实例替换静态变量和复杂操作.
这样,您可以使用finalize()方法来执行close()操作.