K&B give a good first half of an explanation of why the local variables must be declared final. They point out that the local/anonymous class may have a life beyond the existence of the variables on the stack. They don't say how
java solves this problem. My understanding is that these classes DON'T operate on these variables. Instead, they create and hold COPIES of them. In order to guarantee that the variables and the copies don't get out of sync, java insists the variables be final.
Do I have that right?