Chapter 14 Лямбда-выражения и ссылки на методы Flashcards

1
Q

Что такое лямбда-оператор?

A

Это оператор - > .
Он разделяет лямбда-выражение на две части. В левой части указываются параметры, если того требует лямбда-выражение, а в правой - тело лямбда-выражения, которое описывает действия, выполняемые лямбда-выражением.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Что такое функциональный интерфейс?

A

Функциональный интерфейс - это интерфейс, который содержит один и только один абстрактный метод. Функциональный интерфейс может включать методы по умолчанию и статические методы, но в любом случае он должен и меть один и только один абстрактный метод.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Какая связь существует между функциональными интерфейсами и лямбда-выражениями?

A

Лямбда-выражение предоставляет реализацию абстрактного метода, определяемого функциональным интерфейсом. Функциональный интерфейс определяет целевой тип .

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Назовите два общих типа лямбда-выражений.

A

Лямбда-выражения бывают строчными и блочными. Строчное лямбда-выражение определяет одиночное выражение, значение которого возвращается лямбда-оператором. Блочное лямбда-выражение содержит блок кода.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Составьте лямбда-выражение, которое возвращает значение true , если число принадлежит к диапазону чисел 1 0-20, включая граничные значения.

A

(n) -> (n>9 && n<21)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Создайте функциональный интерфейс, способный поддерживать лямбда-выражение, предложенное в п. 5. Назовите интерфейс MyTest , а его абстрактный метод - testing ( ) .
Answer:

A
interface MyTest {
Boolean testing (int n); 
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Можно ли использовать в лямбда-выражении локальную переменную?
Если это так, то какие при этом существуют ограничения?

A

Можно, но переменная должна быть объявлена как final.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Справедливо ли следующее утверждение: “ Если лямбда-выражение может генерировать проверяемое исключение, то абстрактный метод функционального интерфейса должен содержать инструкцию throws, в которой указано данное исключение”?

A

Да, справедливо

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что такое ссылка на метод?

A

Ссылка на метод - это способ обращения к методу без его вызова

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

. При вычислении ссылки на метод создается экземпляр __________, предоставляемого целевым контекстом.

A

функционального интерфейса

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Предположим, имеется класс MyClass , содержащий статический метод myStaticMethod ( ) . Продемонстрируйте, каким образом можно указать ссылку на метод myStaticMethod ( ) .

A

MyClass : : myStaticMethod ( )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Предположим , имеется класс MyClass , содержащий объектный метод myinstMethod ( ) , и относящийся к этому классу объект mcObj . Продемонстрируйте, как можно создать ссылку на метод myinstMethod ( ) , ассоциированный с объектом mcObj .

A

mcObj :: myinstMethod ( )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Как определяется ссылка на конструктор?

A

Ссылка на конструктор создается путем указания имени класса, после которого вслед за символами : : указывается оператор new . Например:
имя класса : : new

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

В каком пакете Java содержатся определения встроенных функциональных интерфейсов?

A

java.util.function

How well did you know this?
1
Not at all
2
3
4
5
Perfectly