Внутренний класс и локальные переменные

Почему мне нужно объявлять local variableкак final, если мой Inner class, определенный в методе, должен его использовать?

Пример:

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();
        }
    }
}

}

Почему строка yдолжна быть конечной константой? Как это влияет?

14
задан NINCOMPOOP 1 August 2013 в 07:49
поделиться