根据官方Java文档,Object.finalize()会被垃圾收集器调用,当垃圾收集器认定这个对象没有被引用时。 直接调用这个方法会破坏这个协议,所以会产生误导。
Object.finalize()
下面代码演示了这个规则:
public void dispose() throws Throwable { this.finalize(); // Non-Compliant }