Pattern matching en switch
Reemplaza cadenas if-else con instanceof por patrones de tipo limpios en switch.
Comparación de Código
✕ 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";
};
}
¿Ves un problema con este código? Cuéntanos.
Por qué gana la forma moderna
Despacho estructurado
El switch hace explícita y escaneable la estructura de ramificación.
Forma de expresión
Devuelve un valor directamente — sin necesidad de variable mutable.
Exhaustividad
El compilador asegura que todos los tipos están cubiertos.
Enfoque Antiguo
Cadena if-else
Enfoque Moderno
Patrones de tipo
Desde JDK
21
Dificultad
Intermedio
Soporte JDK
Pattern matching en switch
Disponible
Ampliamente disponible desde JDK 21 LTS (sept. 2023)
Cómo funciona
El pattern matching en switch permite hacer coincidencia de tipos directamente, combinando la comprobación de tipo, el casting y la vinculación en una sola etiqueta de caso concisa. El compilador verifica la completitud.
Documentación Relacionada