Sobes.tech
Junior

Šta su lambda izrazi u Javi?

sobes.tech АИ

Одговор од АИ

Izraz lambda u Javi je anonimna (bez imena) funkcija koja implementira funkcionalni interfejs.

Glavne karakteristike:

  • Nemaju ime.
  • Mogu imati parametre.
  • Telo može sastojati od jednog izraza ili bloka naredbi.
  • Tip povratne vrednosti nije naveden (automatski se zaključuje).
  • Neophodni su za funkcionalno programiranje i rad sa tokovima (Streams API).

Sintaksa:

// Bez parametara
() -> { // telo }

// Sa jednim parametrom (tip može biti izostavljen)
param -> izraz

// Sa više parametara (tip može biti izostavljen, potrebne su zagrade)
(param1, param2) -> { // telo }

Primer upotrebe:

// Funkcionalni interfejs (ugrađeni)
import java.util.function.Consumer;

// Implementacija pomoću lambda
Consumer<String> štampač = s -> System.out.println(s);
štampač.accept("Zdravo svete!");

// Upotreba u metodu koja prihvata funkcionalni interfejs
import java.util.Arrays;
import java.util.List;

List<Integer> brojevi = Arrays.asList(1, 2, 3, 4, 5);
brojevi.forEach(n -> System.out.println(n)); // forEach prihvata Consumer

Prednosti:

  • Kraći kod.
  • Poboljšana čitljivost (u jednostavnim slučajevima).
  • Mogućnost korišćenja funkcionalnog programiranja.
  • Olakšava rad sa kolekcijama i višestrukim nitima.

Ograničenja:

  • Ugnježdene ili duge lambda izraze može biti teško razumeti.
  • Nemaju stanje (ne mogu imati polja instance).