Language Intermédiaire

Remplace les chaînes if-else avec instanceof par des patterns de types propres dans switch.

✕ Java 8
String format(Object obj) {
    if (obj instanceof Integer i)
        return "int: " + i;
    else if (obj instanceof Double d)
        return "double: " + d;
    else if (obj instanceof String s)
        return "str: " + s;
    return "unknown";
}
✓ Java 21+
String format(Object obj) {
    return switch (obj) {
        case Integer i -> "int: " + i;
        case Double d  -> "double: " + d;
        case String s  -> "str: " + s;
        default        -> "unknown";
    };
}
Un problème avec ce code ? Dites-le nous.
📐

Dispatch structuré

Le switch rend la structure de branchement explicite et lisible d'un coup d'œil.

🎯

Forme d'expression

Retourne une valeur directement — sans variable mutable nécessaire.

Exhaustivité

Le compilateur s'assure que tous les types sont couverts.

Ancienne Approche
Chaîne if-else
Approche Moderne
Patterns de types
Depuis JDK
21
Difficulté
Intermédiaire
Pattern matching dans switch
Disponible

Disponible depuis JDK 21 LTS (sept. 2023)

Le pattern matching dans switch permet de faire correspondre des types directement, combinant la vérification de type, le casting et la liaison en une seule étiquette de cas concise. Le compilateur vérifie l'exhaustivité.

Partager 𝕏 🦋 in