Junior
Wat zijn lambda-uitdrukkingen in Java?
sobes.tech AI
Antwoord van AI
Een lambda-uitdrukking in Java is een anonieme (naamloze) functie die een functioneel interface implementeert.
Belangrijkste kenmerken:
- Ze hebben geen naam.
- Ze kunnen parameters hebben.
- De body kan bestaan uit één uitdrukking of een blok instructies.
- Het retourtype wordt niet gespecificeerd (automatisch afgeleid).
- Ze zijn nodig voor functioneel programmeren en werken met streams (Streams API).
Syntax:
// Zonder parameters
() -> { // body }
// Met één parameter (het type kan worden weggelaten)
parameter -> expressie
// Met meerdere parameters (het type kan worden weggelaten, haakjes zijn nodig)
(param1, param2) -> { // body }
Voorbeeld van gebruik:
// Functioneel interface (ingebouwd)
import java.util.function.Consumer;
// Implementatie met lambda
Consumer<String> printer = s -> System.out.println(s);
printer.accept("Hallo wereld!");
// Gebruik in een methode die een functioneel interface accepteert
import java.util.Arrays;
import java.util.List;
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n)); // forEach accepteert Consumer
Voordelen:
- Meer beknopte code.
- Verbeterde leesbaarheid (in eenvoudige gevallen).
- Mogelijkheid om functioneel programmeren te gebruiken.
- Vereenvoudigt werken met collecties en multithreading.
Beperkingen:
- Geneste of lange lambdas kunnen moeilijk te begrijpen zijn.
- Ze hebben geen staat (kunnen geen instantievelden hebben).