I estimate that 99% of all method parameters is never modified. So if we followed Checkstyle's suggestions, that would mean that all but a few parameters would have to be declared as final! Not a readibility improvement as far as I am concerned! I second that. I happily use "private static final" and "public static final" for class level constants (and sometimes to make the methods and classes final), but to inject that to every local reference declaration or a method parameter is abuse. Just for curiosity, I ran a search against all java.* classes in JDK1.4 (that's about 1200 classes) and found
very few lines of code where
final was used as a qualifier with a local variable or method parameter.
I would also note that
"Java Coding Conventions" only prescribe the use of
final with the class constants.