Значение lambda() → {} в Java

Я смотрю следующий ответ "Переполнение стека": как изменить Spring @Scheduled fixedDelay во время выполнения

А в коде есть следующая строка:

schedulerFuture = taskScheduler.schedule(() -> { }, this);

Я хотел бы знать, что означает lambda () → {} в этом коде. Мне нужно написать его без использования лямбда.

Ответ 1

Его Runnable с определением пустого run. Анонимное представление этого класса было бы следующим:

new Runnable() {
     @Override public void run() {
          // could have done something here
     }
}

Ответ 2

Выражение Lamda - анонимная функция, позволяющая передавать методы в качестве аргументов или просто механизм, который помогает удалить много шаблонов. У них нет модификатора доступа (закрытый, общедоступный или защищенный), без декларации типа возврата и без имени.

Давайте посмотрим на этот пример.

(int a, int b) → {return a > b}

В вашем случае вы можете сделать что-то вроде ниже:

schedulerFuture = taskScheduler.schedule(new Runnable() {
     @Override 
     public void run() {
        // task details
     }
}, this);

Ответ 3

Для лямбда:

Левая сторона - это аргументы, что вы принимаете. Вложенные в () - все аргументы, которые эта функция принимает

-> указывает, что это функция, которая берет то, что слева, и передает ее вправо для обработки

Правая сторона тела - то, что делает лямбда. В {} есть все, что делает эта функция

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

Ответ 4

Лямбда-выражения в основном выражают экземпляры функциональных интерфейсов. В некотором смысле лямбда-выражение будет: (параметры лямбда-оператора) → {body}

() → System.out.println("Это означает, что лямбда-выражение не принимает никаких параметров");

(p) → System.out.println("Лямбда-выражение с одним параметром:" + p);

Если вы хотите больше узнать о лямбда-выражении, посетите Java 8 Лямбда-выражение