Making java method arguments as final
As a formal method parameter is a local variable, you can access them from inner anonymous classes only if they are declared as final. This saves you from declaring another local final variable in the method body: void m(final int param) { new Thread(new Runnable() { public void run() { System.err.println(param); } }).start(); }