Language Intermedio

Sostituisci le catene if-else instanceof con pattern di tipo switch puliti.

✕ 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";
    };
}
Vedi un problema con questo codice? Faccelo sapere.
📐

Dispatch strutturato

Lo switch rende la struttura di branching esplicita e scansionabile.

🎯

Forma espressione

Restituisce un valore direttamente — nessuna variabile mutabile necessaria.

Esaustività

Il compilatore verifica che tutti i tipi siano gestiti.

Approccio Vecchio
Catena if-else
Approccio Moderno
Pattern di tipo
Dal JDK
21
Difficoltà
Intermedio
Pattern matching in switch
Disponibile

Ampiamente disponibile dal JDK 21 LTS (settembre 2023)

Il pattern matching in switch permette di corrispondere direttamente sui tipi, combinando il test del tipo, il cast e il binding in un'unica etichetta case concisa. Il compilatore verifica la completezza.

Condividi 𝕏 🦋 in