Sobes.tech
Junior

Kas yra lambda išraiškos Java?

sobes.tech AI

Atsakymas iš AI

Lambda išraiška Java yra anonimė (be pavadinimo) funkcija, kuri įgyvendina funkcionalųjį interfeisą.

Pagrindinės savybės:

  • Neturi pavadinimo.
  • Gali turėti parametrus.
  • Kūnas gali būti sudarytas iš vienos išraiškos arba operatorių bloko.
  • Grąžinamojo tipo nėra nurodyta (automatiškai išvedama).
  • Reikalinga funkcionaliojo programavimo ir srautų (Streams API) darbui.

Sintaksė:

// Be parametrų
() -> { // kūnas }

// Su vienu parametru (tipas gali būti praleistas)
param -> išraiška

// Su keliais parametrais (tipas gali būti praleistas, reikalingi skliaustai)
(param1, param2) -> { // kūnas }

Pavyzdys:

// Funkcinis interfeisas (įmontuotas)
import java.util.function.Consumer;

// Įgyvendinimas su lambda
Consumer<String> spausdintojas = s -> System.out.println(s);
spausdintojas.accept("Labas pasauli!");

// Naudojimas metodo, kuris priima funkcionalųjį interfeisą
import java.util.Arrays;
import java.util.List;

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

Privalumai:

  • Trumpesnis kodas.
  • Pagerinta skaitomumas (paprastais atvejais).
  • Galimybė naudoti funkcionalųjį programavimą.
  • Supaprastina darbą su kolekcijomis ir daugiagijumu.

Apribojimai:

  • Giliai įterpti arba ilgi lambda gali būti sunkiai suprantami.
  • Neturi būsenos (negali turėti instancijos laukų).