Sobes.tech
Junior

Czym są wyrażenia lambda w Java?

sobes.tech AI

Odpowiedź od AI

Wyrażenie lambda w Java to zwięzły sposób przedstawiania funkcji anonimowych (funkcji bez nazwy). Służy do tworzenia instancji interfejsów funkcyjnych.

Główne składniki:

  • Lista parametrów: Nawiasy () zawierają listę parametrów. Jeśli nie ma parametrów, używa się pustych nawiasów.
  • Strzałka ->: Oddziela listę parametrów od ciała wyrażenia lambda.
  • Ciało: Może być pojedynczym wyrażeniem lub blokiem kodu w nawiasach {}.

Przykład bez parametrów:

// Interfejs funkcyjny
@FunctionalInterface
interface Greeting {
    void sayHello();
}

// Użycie wyrażenia lambda
Greeting greeting = () -> System.out.println("Hello, World!");

Przykład z parametrami:

// Interfejs funkcyjny
@FunctionalInterface
interface MathOperation {
    int operate(int a, int b);
}

// Użycie wyrażenia lambda
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
    return a - b;
};

Zalety:

  • Zwięzłość: Zmniejsza ilość kodu szablonowego.
  • Wygoda: Użycie razem z API Stream do przetwarzania kolekcji.
  • Programowanie funkcyjne: Wspiera elementy programowania funkcyjnego w Java.

Ograniczenia:

  • Mogą być używane tylko z interfejsami funkcyjnymi (interfejsami z jednym metodą abstrakcyjną).
  • Nie mogą mieć stanu (tzn. nie mogą modyfikować zmiennych spoza swojego kontekstu, jeśli te zmienne nie są jawnie zadeklarowane jako final lub efektywnie final).

Wyrażenia lambda zostały wprowadzone w Java 8.