> > parameters and local variables are not considered final: there is nothing > wrong > with modifying their value, and nothing good to get by forcing them to be > final >
But there *is* value is defining them to be final. If you as the programmer know that a value should never change, then by denoting it as final you can enforce that it is not inadvertently modified by someone else. If they deem that the restriction needs to be loosened because requirements have changed then they can do so. It is just like specifying an assertion. It is about code correctness and less failures.