Language Intermedio

Añade condiciones a los casos de un patrón usando guardas when.

✕ 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";
};
¿Ves un problema con este código? Cuéntanos.
🎯

Coincidencia precisa

Combina tipo + condición en una sola etiqueta de caso.

📐

Estructura plana

Sin if/else anidados dentro de los casos del switch.

📖

Intención legible

La cláusula when se lee como lenguaje natural.

Enfoque Antiguo
if anidado
Enfoque Moderno
Cláusula when
Desde JDK
21
Dificultad
Intermedio
Patrones con guardas when
Disponible

Ampliamente disponible desde JDK 21 LTS (sept. 2023)

Los patrones con guardas permiten refinar una coincidencia de tipo con una condición booleana adicional. Esto mantiene toda la lógica de ramificación dentro del switch en lugar de anidar sentencias if dentro de los casos.

Compartir 𝕏 🦋 in