Since Checkstyle 3.2
Checks that an overriding finalize()
method invokes
super.finalize()
. Does not check native methods, as
they have no possible java defined implementation.
References: How to Handle Java Finalization's Memory-Retention Issues; 10 points on finalize method in Java.
To configure the check:
<module name="Checker"> <module name="TreeWalker"> <module name="SuperFinalize"/> </module> </module>
Example:
public class A { protected void finalize() throws Throwable { System.out.println("In finalize block"); super.finalize(); // OK, calls super.finalize() } } public class B { protected void finalize() throws Throwable { // violation System.out.println("In finalize block"); } }
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
com.puppycrawl.tools.checkstyle.checks.coding