Изучаю данный туториал. На некоторых скриншотах есть конструкция ->, например: 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