У меня есть еще один вопрос к финалу анонимного класса.
Внутри анонимного класса получите доступ к атрибутам и методам класса, в котором определен анонимный класс.
Доступ к локальным переменным метода, в котором определен анонимный класс, при условии, что они являются окончательными.Это связано с тем, что локальная переменная больше не будет существовать после завершения метода.
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.