ok, der interessante Satz ist wohl
Zitat:
|
Any local variable ... used but not declared in an inner class must be declared final, and must be definitely assigned (§16) before the body of the inner class.
|
Wenn ich das richtig verstehe soll vermieden werden, dass die Variable f, die ja als lokale Variable zur main() Methode gehört, in einer anderen Methode, in meinem Fall "WindowClosing", manipuliert wird.
Meine obere Variante funktioiert also, wenn ich Frame als final deklariere.
Was passiert, wenn ich das Object "Frame" als final deklariere? Wäre es ein primitiver Datentyp wäre es klar, aber Frame ist ein Objekt.
Interessanterweise habe ich das hier gefunden:
Zitat:
|
One may declare elemental types as final, but final references and final objects do not exist.
|
Demnach kann man Objekte nicht als final deklarieren. Aber es funktioniert. Sehr verwirrend