package com.github.sevntu.checkstyle.checks.coding; class NormalFinalizer { public static void doStuff() { //This method do some stuff } protected void finalize() throws Throwable { try { doStuff(); } finally { super.finalize(); } } } //negates effect of superclass finalizer class EmptyFinalizer { protected void finalize() throws Throwable { //empty finalize () } } //fails to call superclass finalize method class WithoutTryCatchFinalizer { public static void doStuff() { //This method do some stuff } protected void finalize() throws Throwable { doStuff(); } } //public finalizer class PublicFinalizer { public static void doStuff() { //This method do some stuff } public void finalize() throws Throwable { try { doStuff(); } finally { super.finalize(); } } } //unless (or worse) finalizer class SuperFinalizer { protected void finalize() throws Throwable { super.finalize(); } } //public finalizer class PublicFinalizer1 { public static void doStuff() { //This method do some stuff } protected void finalize() throws Throwable { try { doStuff(); } finally { } } } class TestNoFinal { public static void doStuff() { } protected void finalize() throws Throwable { try { doStuff(); } catch(Exception e) { } } } interface TestNotFinalize { int finalize() throws Throwable; void finalize(int n) throws Throwable; void someOtherMethod(); }