Sobes.tech
Junior

Какви са лямбда изразите в Java?

sobes.tech AI

Отговор от AI

Изразът lambda в Java е кратък начин за представяне на анонимни функции (функции без име). Те се използват за създаване на екземпляри на функционални интерфейси.

Основни компоненти:

  • Списък с параметри: Кръглите скоби () съдържат списък с параметри. Ако няма параметри, се използват празни скоби.
  • Стрелка ->: Отделя списъка с параметри от тялото на лямбда израза.
  • Тяло: Може да бъде едно изразяване или блок от код в фигурни скоби {}.

Пример без параметри:

// Функционален интерфейс
@FunctionalInterface
interface Greeting {
    void sayHello();
}

// Използване на лямбда израз
Greeting greeting = () -> System.out.println("Hello, World!");

Пример с параметри:

// Функционален интерфейс
@FunctionalInterface
interface MathOperation {
    int operate(int a, int b);
}

// Използване на лямбда израз
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
    return a - b;
};

Предимства:

  • Краткост: Намалява обема на шаблонния код.
  • Удобство: Използва се заедно с API Stream за обработка на колекции.
  • Функционално програмиране: Поддържа елементи на функционално програмиране в Java.

Ограничения:

  • Могат да се използват само с функционални интерфейси (интерфейси с един абстрактен метод).
  • Не могат да имат състояние (т.е. не могат да променят променливи извън техния контекст, ако тези променливи не са явно обявени като final или ефективно final).

Лямбда изразите бяха въведени в Java 8.