Lambda - это новая программная конструкция, которая позволяет создавать приложения Java в совершенно другой парадигме. Это руководство будет охватывать Java 8 Lambda, и вам потребуются предварительные знания о программировании на Java и опыт кодирования в предыдущих версиях Java. Это может быть J ava 6 или Java 7.

Для демонстрации я использовал IDE NetBeans.

Здесь мы сосредоточимся только на Java 8 в этом руководстве и, в частности, на функциях Lambda в Java 8.

Вот обзор этой серии руководств.

  • Понимание лямбд.
  • Используя лямбды.
  • Функциональные интерфейсы.
  • Ссылки на методы.
  • Улучшения коллекций.

Почему лямбды?

Большинство разработчиков используют лямбда-выражения для реализации по следующим причинам:

  • Обеспечивает функциональное программирование
  • Читаемый и лаконичный код
  • Более простые в использовании API и библиотеки
  • Включает поддержку параллельной обработки

Функциональное программирование и объектно-ориентированное программирование

Мы используем объектно-ориентированное программирование уже много лет. Этого достаточно? Почему мы используем функциональное программирование? В объектно-ориентированном программировании мы используем миллионы строк кода. Вы можете делать на Java практически все, используя только объектно-ориентированное программирование. Таким образом, функциональное программирование позволяет писать более читаемый и поддерживаемый код. Функциональное программирование - это еще одна парадигма программирования, которая позволяет писать код в определенных ситуациях. Это похоже на еще один инструмент в вашем наборе инструментов, который можно использовать в определенных ситуациях.

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

Позвольте мне показать этот пример.

Если я выполню это, я должен получить печать Hello World в консоли.

Метод печати печатает Hello World. Теперь я хочу, чтобы он принимал участие и делал разные вещи в зависимости от ввода. Этот метод печати принимает аргумент, и этот аргумент позволяет методу печати знать, что делать. Один из способов сделать это - написать метод печати со всеми возможными комбинациями всего, что он может делать, и использовать входной аргумент в качестве переключателя. Но это нехорошо. Вы можете передать поведение в качестве аргумента, и метод печати просто принимает это поведение и выполняет его. Один из способов сделать это в Java 7 - создать класс или интерфейс с именем Print, который состоит из метода выполнения. И вы передаете методу печати экземпляр этого интерфейса печати.

Интерфейс печати здесь.

package lambdatutorial;
/**
 *
 * @author Kasun Dissanayake
 */
public interface Print {
    public void perform();
    
}

Реализация Интерфейса печати здесь. Он просто печатает приветствие на консоли.

package lambdatutorial;
/**
 *
 * @author Kasun Dissanayake
 */
public class PrintPerform implements Print {
@Override
    public void perform() {
        System.out.println("Welcome...");
    }
    
}

Главный класс здесь. Вам просто нужно создать экземпляр класса PrintPerform и передать его методу печати в классе LambdaTutorial.

package lambdatutorial;
/**
 *
 * @author Kasun Dissanayake
 */
public class LambdaTutorial {
public void print(Print print){
        print.perform();
    }
    public static void main(String[] args) {
        
        LambdaTutorial lambdaTutorial = new LambdaTutorial();
        PrintPerform printperform = new PrintPerform();
        lambdaTutorial.print(printperform);
        
        
    }
    
}

Теперь запустим основной класс. Вы получите этот результат.

Здесь я передаю поведение методу печати. Я могу легко создать новую реализацию интерфейса печати и легко изменить код. Это классическое объектно-ориентированное программирование.

Но здесь пришлось потрудиться. Вы не просто передаете поведение. Мы передаем объект, у которого есть поведение (здесь мы передаем Print, у которого есть метод execute). Но нам нужно передать просто действие. И выполняем действие.

Настройка Lambda для достижения этих целей. Lambda позволяет вам создавать эти сущности, которые являются просто функциями. Они называются лямбда-выражениями. Они не принадлежат к классу. Это просто функции, которые существуют изолированно. Мы узнаем больше о лямбда-выражениях в следующем уроке.

Благодарю вас!