I got even more curious and poked about a bit:
Consider the following
test code ripped off from "Java in a Nutshell" (and modified to use an anonymous inner class):
This prints out:
0
1
2
3
4
5
6
7
8
9
So the final variable 'fi' actually is still variable within the scope of the main method ... To quote from Nutshell, "each instance of a local class has an automatically created private copy of each of the final local variables it uses, so, in effect it has its own private copy of the scope that existed when it was created."
Which is inherently groovy ... plus it explains the actual behavoir of the program that got me thinkin' 'bout this (always comforting)
Cheers,
Joe