Sobes.tech
Junior

Šta su lambda izrazi u Javi?

sobes.tech АИ

Одговор од АИ

Izraz lambda u Javi je sažet način za predstavljanje anonimnih funkcija (funkcija bez imena). Koristi se za kreiranje instanci funkcionalnih interfejsa.

Glavne komponente:

  • Lista parametara: Zaokružene zagrade () sadrže listu parametara. Ako nema parametara, koriste se prazne zagrade.
  • Strelica ->: Odvaja listu parametara od tela lambda izraza.
  • Telo: Može biti jedan izraz ili blok koda u vitičastim zagradama {}.

Primer bez parametara:

// Funkcionalni interfejs
@FunctionalInterface
interface Greeting {
    void sayHello();
}

// Korišćenje lambda izraza
Greeting greeting = () -> System.out.println("Hello, World!");

Primer sa parametrima:

// Funkcionalni interfejs
@FunctionalInterface
interface MathOperation {
    int operate(int a, int b);
}

// Korišćenje lambda izraza
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
    return a - b;
};

Prednosti:

  • Sažetost: Smanjuje količinu boilerplate koda.
  • Prijatno: Koristi se zajedno sa API Stream za obradu kolekcija.
  • Funkcionalno programiranje: Podržava elemente funkcionalnog programiranja u Javi.

Ograničenja:

  • Mogu se koristiti samo sa funkcionalnim interfejsima (interfejsi sa jednom apstraktnom metodom).
  • Ne mogu imati stanje (tj. ne mogu menjati promenljive izvan svog konteksta, ako te promenljive nisu eksplicitno deklarisane kao final ili efektivno final).

Lambda izrazi su uvedeni u Javi 8.