Sobes.tech
Junior

Was sind Lambda-Ausdrücke in Java?

sobes.tech KI

Antwort von AI

Lambda-Ausdruck in Java ist eine anonyme Funktion (ohne Namen), die eine funktionale Schnittstelle implementiert.

Hauptmerkmale:

  • Haben keinen Namen.
  • Können Parameter haben.
  • Der Körper kann aus einem einzelnen Ausdruck oder einem Block von Anweisungen bestehen.
  • Der Rückgabetyp wird nicht angegeben (wird automatisch abgeleitet).
  • Notwendig für funktionale Programmierung und die Arbeit mit Streams API.

Syntax:

// Ohne Parameter
() -> { // Körper }

// Mit einem Parameter (Typ kann weggelassen werden)
parameter -> Ausdruck

// Mit mehreren Parametern (Typ kann weggelassen werden, Klammern sind erforderlich)
(param1, param2) -> { // Körper }

Beispiel:

// Funktionale Schnittstelle (eingebaut)
import java.util.function.Consumer;

// Implementierung mit Lambda
Consumer<String> drucker = s -> System.out.println(s);
drucker.accept("Hallo Welt!");

// Verwendung in einer Methode, die eine funktionale Schnittstelle akzeptiert
import java.util.Arrays;
import java.util.List;

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

Vorteile:

  • Kürzerer Code.
  • Verbesserte Lesbarkeit (bei einfachen Fällen).
  • Möglichkeit, funktionale Programmierung zu nutzen.
  • Vereinfachung der Arbeit mit Sammlungen und Multithreading.

Einschränkungen:

  • Verschachtelte oder lange Lambdas können schwer verständlich sein.
  • Haben keinen Zustand (können keine Instanzfelder haben).