Я уверен, что variables accessed within inner class, should be declared final or effectively final
.Но в приведенном ниже случае я запутался.Я не знаю, неправильно я понял.
public class MyClass {
private boolean aBoolean = false;
private Consumer<Boolean> consumer;
private Consumer<Validatable> vConsumer; // Validatable is an interface that I wrote
public MyClass(Consumer<Boolean> c) {
this.vConsumer = validatable -> aBoolean = validatable.hasErrors();
this.consumer = c;
}
public void process() {
consumer.accept(this.aBoolean);
}
}
В вышеприведенном случае я не получил никакой ошибки.Как это возможно?Пожалуйста, помогите