ok, basically if you try to pass in params into the method call within the run method i got this error:
Cannot refer to a non-final variable [param name] inside an inner class defined in a different method
The reason for this compilation error, is the scope of method parameters. The testTimerTask() method can (and actually does) return, after schedulling the request, so the method parameters are no longer valid -- the stack would have been popped.
By making the local variables final, the compiler basically says... since it is final, I will make a copy (of reference) of it. The original variables may be out of scope, but I know the values to use.
Henry