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. == Noncompliant Code Example ---- public class MyClass { @Override public void finalize() { // Noncompliant /* ... */ } } ---- == See * http://cwe.mitre.org/data/definitions/583.html[MITRE, CWE-583] - finalize() Method Declared Public * https://wiki.sei.cmu.edu/confluence/x/4jZGBQ[CERT, MET12-J.] - Do not use finalizers