可以在Java中重载finalize()方法
发布时间:2020-12-15 05:12:46 所属栏目:Java 来源:网络整理
导读:我已经读过某个方法,每个方法都可以重载. finalize() 当然是一种方法.但在搜索时我也发现你不能重载这个方法. 所以问题是我们可以重载finalize()方法吗?如果是,那么它是如何实施的? 解决方法 你可以重载finalize方法,这将成功编译: public class Test{ pu
我已经读过某个方法,每个方法都可以重载.
当然是一种方法.但在搜索时我也发现你不能重载这个方法. 所以问题是我们可以重载finalize()方法吗?如果是,那么它是如何实施的? 解决方法
你可以重载finalize方法,这将成功编译:
public class Test { public void finalize(String hi) { System.out.println("test"); } } 但是垃圾收集器和JVM不会调用它,因为它将调用没有参数的那个. GC和JVM将始终使用签名调用finalize protected void finalize() throws Throwable 解决方法 您可以简单地覆盖finalize并使用参数调用方法: public class Test { public static void main(String args[]) { new Test(); System.gc(); } @Override public void finalize() throws Throwable { super.finalize(); this.finalize("allo"); } public void finalize(String hi) { System.out.println(hi); } } 这将打印allo.这样你可以在你想要的地方调用finalize(String hi),当你覆盖finalize()调用它时,GC也会调用它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |