Встречается на собеседованиях • сегодня
Можно ли обратиться из 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();
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы