Language Średniozaawansowany

Dodaj warunki do przypadków wzorców używając strażników when.

✕ Java 8
if (shape instanceof Circle) {
    Circle c = (Circle) shape;
    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";
};
Widzisz problem z tym kodem? Daj nam znać.
🎯

Precyzyjne dopasowanie

Łącz typ i warunek w jednej etykiecie case.

📐

Płaska struktura

Żadnych zagnieżdżonych if/else wewnątrz przypadków switch.

📖

Czytelny zamiar

Klauzula when czyta się jak język naturalny.

Stare podejście
Zagnieżdżone if
Nowoczesne podejście
Klauzula when
Od JDK
21
Poziom trudności
Średniozaawansowany
Wzorce chronione z when
Dostępne

Szeroko dostępne od JDK 21 LTS (wrzesień 2023)

Wzorce chronione pozwalają doprecyzować dopasowanie typów za pomocą dodatkowego warunku boolowskiego. Dzięki temu cała logika rozgałęzień pozostaje w switch zamiast zagnieżdżonych instrukcji if wewnątrz przypadków.