我正在浏览 finalizer guardian example发布在 Stack Overflow 上,对此我有几个问题:
为什么我们需要创建一个 Guardian 对象?为什么不简单地覆盖终结器工作? (因为所有类都是 Object 类的子类)。
Guardian 对象是在什么时候创建的?我假设它是在类加载期间。
我不理解正在创建的守护对象的语法。函数与变量声明一起声明。这个范式在 Java 中叫什么?
最佳答案
正确地覆盖 finalize() 当然会起作用。我相信监护人的技巧是确保即使您重写的 finalize() 没有调用 super.finalize(),监护人也在您的子类的终结器之前调用父级的终结器。
创建封闭对象实例时。监护人对象只不过是一个实例变量
那是匿名(内部)类。我相信大多数 Java 书籍或教程都涵盖了这一点。尝试使用“java anonymous class”谷歌会给你相当多的资源,例如http://docstore.mik.ua/orelly/java-ent/jnut/ch03_12.htm
关于java - 终结者守护者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14191735/