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ų).