Проходя через лямбда-выражения, я столкнулся с приведенным ниже поведением для анонимных внутренних классов и лямбда-выражений. Что может быть причиной этого?
Human h = new Human() {
int a = 2;
@Override
public void sing() {
System.out.println(++a);
}
};
h.sing();
h.sing();
O / P
3
4
В то время как для лямбд я получаю ниже:
Human h = () -> {
int a = 2;
System.out.println(++a);
};
h.sing();
h.sing();
}
O / P
3
3