Mögliche Duplikate:
Es kann nicht auf eine nicht-finale Variable innerhalb einer inneren Klasse verwiesen werden, die in einer anderen Methode definiert ist.
Warum benötigen innere Klassen "finale" äußere Instanzvariablen [Java]?
class MyOuter {
private String x = "Outer";
void doStuff(){
final String z = "local variable";
class MyInner {
public void seeOuter(){
System.out.println("Outer x is" + x);
System.out.println("Local variable z is" + z); // does
// not compile if final keyword from String z is removed
}
}
}
}
Der obige Code funktioniert gut. Ich möchte wissen, warum der Compiler einen Fehler ausgibt, wenn ich das Schlüsselwort final aus String z entferne.