Innere Klassen-und lokalen Variablen

Warum muss ich erklären local variable als final wenn mein Inner class definiert, die innerhalb der Methode verwenden muss ?

Beispiel :

class MyOuter2 {

private String x = "Outer2";

void doStuff() {
    final String y = "Hello World";

    final class MyInner {

        String z = y;

        public void seeOuter() {
            System.out.println("Outer x is "+x);
            System.out.println("Local variable is "+y);
            MyInner mi = new MyInner();
            mi.seeOuter();
        }
    }
}

}

Warum der String y werden muss, um eine endgültige konstant ? Wie beeinflusst ?

InformationsquelleAutor der Frage NINCOMPOOP | 2012-04-26

Schreibe einen Kommentar