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.


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

After the quick-fix is applied:

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

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Java, 241.16690

Last modified: 29 April 2024