Блок 1 | Lambda Flashcards
Что такое lambda-выражение?
Лямбда-выражение - это анонимный класс, реализующий метод функционального интерфейса, который записан с использованием особого синтаксиса (лямбда оператора) и может быть передан в качестве параметра.
Что такое отложенное выполнение lamdba?
Отложенное выполнение (deferred execution) - это свойство лямбда выражения, которое подразумевает то, что код внутри lambda-выражения не выполняется, пока оно не вызвано.
Что такое ссылки на методы?
Существуют методы, которые могут принимать в качестве параметра ссылку на функциональный интерфейс или его реализацию в виде лямбда-выражения. Вместо этого, в такой метод можно передать ссылку на метод, который совпадает по сигнатуре с ожидаемым функциональным интерфейсом. То есть, по сути, может его реализовать.
Ссылка на метод выглядит так: ИмяКласса::ИмяМетода
Что такое ссылки на конструкторы?
Ссылка на конструктор является тем же, что и ссылка на метод, выглядит она так: ИмяКласса::new
Расскажите о зоне видимости переменных в lambda - выражениях?
Лямбда-выражение имеет доступ:
1. К полям класса объемлющего метода и может их изменять.
2. К локальным переменным объемлющего метода, но не может их изменять и эти переменные должны быть либо final, либо effectively final. В противном случае, мы получим ошибку компиляции.
3. Переменные объявленные внутри лямбда-выражения, доступны только в лямбда-выражении.
Как быть в ситуации, если внутри lambda - выражения операторы могут выкинуть исключение?
Лямбда-выражение может генерировать исключения и, в случае, если исключение является проверяемым, то оно должно быть описано в реализуемом функциональном интерфейсе после оператора throws.