Sobes.tech
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).