Sobes.tech
Junior

Czym są wyrażenia lambda w Java?

sobes.tech AI

Odpowiedź od AI

Wyrażenie lambda w Javie to anonimowa funkcja, która pozwala na przekazywanie bloków kodu jako obiektów. Jest to zwięzły sposób implementacji interfejsów funkcyjnych (interfejsów z jednym metodą abstrakcyjną).

Składnia wyrażenia lambda:

  • Lista parametrów (może być pusta).
  • Operator ->.
  • Ciało wyrażenia (może być wyrażeniem lub blokiem instrukcji).

Przykłady:

// Lambda dla interfejsu funkcyjnego Runnable
Runnable zadanie = () -> System.out.println("Witaj z lambda!");

// Lambda dla interfejsu funkcyjnego Comparator<Integer>
Comparator<Integer> porownywacz = (a, b) -> a.compareTo(b);

// Lambda z ciałem z blokiem instrukcji
Consumer<String> powitanie = imie -> {
    String wiadomosc = "Witaj, " + imie + "!";
    System.out.println(wiadomosc);
};

Kluczowe cechy:

  • Anonimowe: nie mają nazwy.
  • Interfejsy funkcyjne: służą do implementacji interfejsów funkcyjnych.
  • Zwięzłe: pozwalają pisać bardziej zwięzły kod w porównaniu do klas anonimowych.
  • Przechwytywanie zmiennych: mogą przechwytywać lokalne zmienne efektywnie finalne z otaczającego kontekstu.

Użycie wyrażeń lambda poprawia czytelność kodu i upraszcza pracę z API zorientowanymi na programowanie funkcyjne, np. z API Stream.