Pattern matching dans switch
Remplace les chaînes if-else avec instanceof par des patterns de types propres dans switch.
Comparaison de Code
✕ 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.
Pourquoi la méthode moderne gagne
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
Support JDK
Pattern matching dans switch
Disponible
Disponible depuis JDK 21 LTS (sept. 2023)
Comment ça fonctionne
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é.
Documentation Associée