Inspectopedia Help

'finalize()' should be protected, not public

Reports any implementations of the Object.finalize() method that are declared public.

According to the contract of the Object.finalize(), only the garbage collector calls this method. Making this method public may be confusing, because it means that the method can be used from other code.

A quick-fix is provided to make the method protected, to prevent it from being invoked from other classes.

Example:

class X { public void finalize() { /* ... */ } }

After the quick-fix is applied:

class X { protected void finalize() { /* ... */ } }

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023