Sobes.tech
Middle

Czym są wyrażenia lambda w Java i jakie możliwości one zapewniają?

sobes.tech AI

Odpowiedź od AI

Wyrażenia lambda w Javie to anonimowe funkcje, które pozwalają pisać kod bardziej zwięźle, szczególnie podczas pracy z interfejsami funkcyjnymi. Składają się z bloku parametrów, strzałki -> i ciała funkcji.

Główne możliwości:

  • Skracanie kodu: Usuwają konieczność tworzenia anonimowych klas wewnętrznych do implementacji interfejsów funkcyjnych.
  • Programowanie funkcyjne: Ułatwiają stosowanie koncepcji programowania funkcyjnego, takich jak przekazywanie funkcji jako argumentów.
  • Poprawa czytelności: W niektórych przypadkach sprawiają, że kod jest bardziej zrozumiały i łatwiejszy do percepcji.
  • Praca z API Stream: Stanowią podstawę do efektywnej pracy z przepływami danych w Java 8 i nowszych wersjach.

Przykład:

// Tradycyjny sposób z klasą anonimową
Runnable traditionalRunnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Witaj z tradycyjnego runnable");
    }
};

// Z użyciem wyrażenia lambda
Runnable lambdaRunnable = () -> System.out.println("Witaj z lambda runnable");

Wyrażenie lambda jest przypisywane do interfejsu funkcyjnego — interfejsu z jednym metodą abstrakcyjną. Typ parametrów i wartość zwracana lambdy są określane przez sygnaturę tej metody abstrakcyjnej.