Встречается на собеседованиях • сегодня

Можно ли обратиться из Lambda к локальной переменной метода, в котором определена Lambda

Да, можно, но с ограничениями. Локальная переменная должна быть effectively final (фактически неизменяемой) - либо объявлена как final, либо не изменяться после инициализации. Это связано с тем, что лямбда-выражения захватывают значения переменных, а не сами переменные.

Пример:

java
public class LambdaExample {
    public static void main(String[] args) {
        int effectivelyFinalVar = 10; // effectively final
        // finalVar = 20; - если раскомментировать, будет ошибка компиляции
        
        Runnable r = () -> {
            System.out.println(effectivelyFinalVar); // доступ разрешен
            // effectivelyFinalVar++; - нельзя изменять
        };
        r.run();
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы