у меня есть еще один вопрос для финала анонимного класса.
Внутри анонимного класса получите доступ к атрибутам и методам класса, в котором определен анонимный класс.
Доступ к локальным переменным метода, в котором определен анонимный класс, при условии, что они являются окончательными. Это связано с тем, что после завершения метода локальная переменная больше не будет существовать.
package a;
public class A {
private int i = 4;
public void meth() {
System.out.println("will not use");
}
public void meth2() {
int j = 4;
final int k = 3;
A a = new A() {
public void meth() {
System.out.println("i-4 is " + (i - 4));
System.out.println("j-4 is " + (j - 4));
System.out.println("k-4 is " + (k - 4));
}
};
a.meth();
}
public static void main(String st[]) {
A a = new A();
a.meth2();
}
}
следующий результат: run: i-4 равно 0 j-4 равно 0 k-4 равно -1
в верхнем примере (я не получаю никаких ошибок и с результатом) ........ я могу получить доступ ко всем переменным и методам ??? но почему он говорит, что может быть только final и определение в подклассе, переменная больше не будет существовать без final.