Senior
44
À quels objets peut-on accéder à l'intérieur d'une lambda?
Entreprises à qui on a demandé
Réponse de l'IA
sobes.tech IA
Внутри лямбда-выражения в Java можно обращаться к:
- Локальным переменным, но только если они являются effectively final (то есть не изменяются после инициализации).
- Полям и методам внешнего класса (в том числе нестатическим), так как лямбда захватывает ссылку на объект внешнего класса.
- Параметрам метода, в котором объявлена лямбда, при условии, что они тоже effectively final.
Пример:
int number = 10; // effectively final
Runnable r = () -> {
System.out.println(number); // можно использовать
System.out.println(this.toString()); // доступ к методам и полям внешнего класса
};
r.run();
Если попытаться изменить локальную переменную после использования в лямбде, компилятор выдаст ошибку.