According to the official Java documentation, Object.finalize() is called by the garbage collector on an object when garbage collection determines that there are no more references to the object. Calling this method explicitly breaks this contract and so is misleading.

The following code snippet illustrates this rule:

public void dispose() throws Throwable {
  this.finalize();                       // Non-Compliant
}