Language Fortgeschritten

Bedingungen zu Pattern-Fällen mit when-Wächtern hinzufügen.

✕ Java 8
if (shape instanceof Circle c) {
    if (c.radius() > 10) {
        return "large circle";
    } else {
        return "small circle";
    }
} else {
    return "not a circle";
}
✓ Java 21+
return switch (shape) {
    case Circle c
        when c.radius() > 10
            -> "large circle";
    case Circle c
            -> "small circle";
    default -> "not a circle";
};
Problem mit diesem Code entdeckt? Sag uns Bescheid.
🎯

Präzises Matching

Typ + Bedingung in einem einzigen case-Label kombinieren.

📐

Flache Struktur

Keine verschachtelten if/else in Switch-Fällen.

📖

Lesbare Absicht

Die when-Klausel liest sich wie natürliche Sprache.

Alter Ansatz
Verschachteltes if
Moderner Ansatz
when-Klausel
Seit JDK
21
Schwierigkeitsgrad
Fortgeschritten
Bewachte Muster mit when
Verfügbar

Seit JDK 21 LTS allgemein verfügbar (Sept. 2023)

Bewachte Muster ermöglichen es, einen Typ-Match mit einer zusätzlichen booleschen Bedingung zu verfeinern. Dadurch bleibt die gesamte Verzweigungslogik im Switch, anstatt if-Anweisungen in Fällen zu verschachteln.

Teilen 𝕏 🦋 in