The contract of the Object.finalize()
method is clear: only the Garbage Collector is supposed to call this method.
Making this method public is misleading, because it implies that any caller can use it.
public class MyClass { @Override public void finalize() { // Noncompliant /* ... */ } }