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