我在我编写的类的主方法中尝试了以下代码:
public static void main(String[] args){
...
Object s = new Object();
s.finalize();
...
}
但是, eclipse 给了我一个提示
The method finalize() from the type Object is not visible
我很困惑,因为类型 Object 有一个 protected final方法,它应该是它自己可见的?我到底有错吗?
最佳答案
Object#finalize()
是一个 protected
方法。你不能这样调用它。类的 protected 成员由其直接子类继承。您可以在 this
引用的直接子类内部访问它,但不能直接使用该类的引用。
它会是这样的:
class Demo {
public void test() {
this.finalize();
}
}
顺便说一句,你为什么要调用它?在对象从内存中完全删除之前,JVM 会自动调用该方法来清除对象正在使用的所有资源。
关于java - Object 类型的 Finalize() 方法不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22117656/