Sobes.tech
Middle

Šta su lambda izrazi u Javi?

sobes.tech АИ

Одговор од АИ

Izraz lambda u Javi je anonimna funkcija. Omogućava razmatranje funkcionalnosti kao argumenta metode ili kao koda kao podataka.

Glavne karakteristike:

  • Anonimnost: Nema ime.
  • Funkcionalni interfejs: Lambda izraz je uvek povezan sa funkcionalnim interfejsom (interfejs sa jednom apstraktnom metodom).
  • Sintaksa: (parametri) -> { telo }

Primer korišćenja sa funkcionalnim interfejsom Consumer:

import java.util.function.Consumer;

// Funkcionalni interfejs Consumer<T> ima jednu apstraktnu metodu accept(T t)
Consumer<String> pozdrav = (ime) -> {
    System.out.println("Zdravo, " + ime);
};

pozdrav.accept("Svet"); // Izlaz: Zdravo, Svet

Primer korišćenja sa interfejsom Runnable:

// Interfejs Runnable ima jednu apstraktnu metodu run()
Runnable zadatak = () -> {
    System.out.println("Zadatak se izvršava u posebnom thread-u");
};

new Thread(zadatak).start(); // Pokreće zadatak u novom thread-u

Varijante sintakse:

  • Bez parametara: () -> { System.out.println("Zdravo"); }
  • Jedan parametar bez zagrada: ime -> System.out.println("Zdravo, " + ime)
  • Više parametara sa zagradama i tipovima: (int a, int b) -> { return a + b; }
  • Više parametara bez tipova (inferencija tipa): (a, b) -> a + b
  • Jednolinijski telo bez return: (a, b) -> a + b
  • Višelinijsko telo sa zagradama i return (ako je potrebno): (a, b) -> { int suma = a + b; return suma; }

Lambda izrazi čine kod kompaktnijim, čitljivijim i omogućavaju korišćenje funkcionalnog programiranja u Javi.