我(在某处)读到,当子类被垃圾收集时,不能保证调用父类的 finalize()
,这是否意味着大多数开发人员覆盖子类中的 finalize()
并调用 super.finalize()
?
最佳答案
对于父类,不会自动调用Finalize。因此,如果您覆盖finalize,则确保清理父类(super class)的正确方法是
protected void finalize() {
try {
// do subclass cleanup
}
finally {
super.finalize();
}
}
请参阅此引用文章http://www.ibm.com/developerworks/java/library/j-jtp06294/index.html
值得注意的是,终结器不是非常可预测的,并且您对它们是否/何时运行没有任何控制。在完成方法中,不应做任何关键的事情。通常,更好的做法是只对您的类进行显式清理。
关于java - 您是否在子类中调用super.finalize()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11379115/