Chapter 14 Лямбда-выражения и ссылки на методы Flashcards
Что такое лямбда-оператор?
Это оператор - > .
Он разделяет лямбда-выражение на две части. В левой части указываются параметры, если того требует лямбда-выражение, а в правой - тело лямбда-выражения, которое описывает действия, выполняемые лямбда-выражением.
Что такое функциональный интерфейс?
Функциональный интерфейс - это интерфейс, который содержит один и только один абстрактный метод. Функциональный интерфейс может включать методы по умолчанию и статические методы, но в любом случае он должен и меть один и только один абстрактный метод.
Какая связь существует между функциональными интерфейсами и лямбда-выражениями?
Лямбда-выражение предоставляет реализацию абстрактного метода, определяемого функциональным интерфейсом. Функциональный интерфейс определяет целевой тип .
Назовите два общих типа лямбда-выражений.
Лямбда-выражения бывают строчными и блочными. Строчное лямбда-выражение определяет одиночное выражение, значение которого возвращается лямбда-оператором. Блочное лямбда-выражение содержит блок кода.
Составьте лямбда-выражение, которое возвращает значение true , если число принадлежит к диапазону чисел 1 0-20, включая граничные значения.
(n) -> (n>9 && n<21)
Создайте функциональный интерфейс, способный поддерживать лямбда-выражение, предложенное в п. 5. Назовите интерфейс MyTest , а его абстрактный метод - testing ( ) .
Answer:
interface MyTest { Boolean testing (int n); }
Можно ли использовать в лямбда-выражении локальную переменную?
Если это так, то какие при этом существуют ограничения?
Можно, но переменная должна быть объявлена как final.
Справедливо ли следующее утверждение: “ Если лямбда-выражение может генерировать проверяемое исключение, то абстрактный метод функционального интерфейса должен содержать инструкцию throws, в которой указано данное исключение”?
Да, справедливо
Что такое ссылка на метод?
Ссылка на метод - это способ обращения к методу без его вызова
. При вычислении ссылки на метод создается экземпляр __________, предоставляемого целевым контекстом.
функционального интерфейса
Предположим, имеется класс MyClass , содержащий статический метод myStaticMethod ( ) . Продемонстрируйте, каким образом можно указать ссылку на метод myStaticMethod ( ) .
MyClass : : myStaticMethod ( )
Предположим , имеется класс MyClass , содержащий объектный метод myinstMethod ( ) , и относящийся к этому классу объект mcObj . Продемонстрируйте, как можно создать ссылку на метод myinstMethod ( ) , ассоциированный с объектом mcObj .
mcObj :: myinstMethod ( )
Как определяется ссылка на конструктор?
Ссылка на конструктор создается путем указания имени класса, после которого вслед за символами : : указывается оператор new . Например:
имя класса : : new
В каком пакете Java содержатся определения встроенных функциональных интерфейсов?
java.util.function