5. Что такое лямбда-выражение? Чем его можно заменить?

5. Что такое лямбда-выражение? Чем его можно заменить?

UNKNOWN

Представляет набор инструкций, которые можно выделить в отдельную переменную и затем многократно вызвать в различных местах программы. Образует реализацию метода, определенного в функциональном интерфейсе. При этом важно, что функциональный интерфейс должен содержать только один единственный метод без реализации.

список параметров выражения -> тело лямбда-выражения (действия)

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

В лямбда-выражении использование обобщений не допускается. В этом случае нам надо типизировать объект интерфейса определенным типом, который потом будет применяться в лямбда-выражении.

public class LambdaApp {

    public static void main(String[] args) {

        Operationable<Integer> operation1 = (x, y)-> x + y;

        Operationable<String> operation2 = (x, y) -> x + y;

        System.out.println(operation1.calculate(20, 10)); //30

        System.out.println(operation2.calculate(\"20\", \"10\")); //2010

    } 

}

interface Operationable<T>{

    T calculate(T x, T y);

}

Одним из ключевых моментов в использовании лямбд является отложенное выполнение (deferred execution). То есть мы определяем в одном месте программы лямбда-выражение и затем можем его вызывать при необходимости неопределенное количество раз в различных частях программы. Отложенное выполнение может потребоваться, к примеру, в следующих случаях:

Report Page