Что значит "->" в Java?

1,00
р.
Изучаю данный туториал. На некоторых скриншотах есть конструкция ->, например:
vertx.deployVerticle("com.mycompany.MyOrderProcessorVerticle", res -> { if (res.succeeded()) { System.out.println("Deployment id is: " + res.result()) } else { System.out.println("Deployment failed!") } })
Не сталкивался раньше с таким. Подскажите, пожалуйста, что это такое и где можно об этом почитать хорошие материалы.

Ответ
Это лямбда выражение - анонимная функция. Проще говоря, это метод без объявления (без модификаторов доступа, возвращающие значение и имя).
Появились в 8 версии Java.
Пример использования
Напишем простой пример функционального интерфейса :
public interface Lambda { //Метод интерфейса с отсутсвующей реализацией int getDoubleValue(int val)
//Метод интерфейса с реализацией по-умолчанию default void printVal(int val) { System.out.println(val) } }
Функциональный интерфейс должен иметь только один абстрактный метод. Прочитать о причинах такого ограничения можно здесь.
Теперь создадим класс для использования
public class ClassForLambda { public static void main(String[] args) { //Объявляем ссылку на функциональный интерфейс Lambda lam //Параметр для нашего абстрактногго метода int num =9
//Прописываем первый вариант реализации lam = (val) -> val * 2 System.out.println(lam.getDoubleValue(num))
//Прописываем второй вариант реализации lam = (val) -> { System.out.println("Your number is "+val) return val * 2 } System.out.println(lam.getDoubleValue(num)) } }
Как можно заметить, обращение к методу не изменилось. Изменению подверглась только реализация.
Ссылки:
Хабр JavaRush Еще один ответ на StackOverflow