tgoop.com/javaquiz/2065
Last Update:
❓ Вопрос на собеседовании
Как лямбда-выражения в Java используют переменные из внешнего контекста и какие существуют ограничения на это?
Ответ ⬇️
В Java лямбда-выражения могут использовать переменные из окружающей области, но только если они являются фактически финализированными. Это означает, что переменная должна быть объявлена как final или её значение не должно изменяться после инициализации.
Данное ограничение связано с тем, что лямбды могут выполняться в другом потоке, и изменение переменной вне лямбды может привести к непредсказуемым результатам.
Пример использования ⚙️
import java.util.function.Consumer;
public class Main {
public static void main(String[] args) {
int base = 10;
Consumer multiplier = value -> {
System.out.println(value * base); // Использование захваченной переменной
};
multiplier.accept(5); // Вывод: 50
// base = 20; // Ошибка компиляции: переменная должна быть фактически финализированной
}
}
👩💻
@javaquiz
BY Java задачи с собеседований
Share with your friend now:
tgoop.com/javaquiz/2065