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.