- 20 April 2006
- 22.682
- 1.316
Hierzu folgender Code:
Der Compiler liefert die folgende Fehlermeldung:
Interessant finde ich die Frage, warum das final-Keyword gesetzt werden muss. Was unterscheidet jetzt eine lokale Klasse (innerhalb einer Methode) von einer inneren Klasse ?
PHP:
public class Dummy {
public void foo(int localVar, final int finalVar) {
class InnerMethodClass {
public void foo() {
int a = localVar; // <-- Fehler
int b = finalVar;
}
}
}
}
class Dummy2 {
int objVar;
final int classVar;
class InnerClass {
public void foo() {
int a = objVar; // <-- OK
int b = classVar;
}
}
}
Dass es so ist, klar, seh ich: Weitere InfosDummy.java:6: local variable localVar is accessed from within inner class; needs to be declared final
int a = localVar;
Interessant finde ich die Frage, warum das final-Keyword gesetzt werden muss. Was unterscheidet jetzt eine lokale Klasse (innerhalb einer Methode) von einer inneren Klasse ?