Language Intermediário

Substitua cadeias de if-else com instanceof por padrões de tipo limpos no 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";
    };
}
Viu um problema com este código? Nos avise.
📐

Despacho estruturado

O switch torna a estrutura de ramificação explícita e fácil de ler.

🎯

Forma de expressão

Retorna um valor diretamente — sem necessidade de variável mutável.

Exaustividade

O compilador garante que todos os tipos estão tratados.

Abordagem Antiga
Cadeia de if-else
Abordagem Moderna
Padrões de tipo
Desde o JDK
21
Dificuldade
Intermediário
Pattern matching em switch
Disponível

Amplamente disponível desde o JDK 21 LTS (set 2023)

O pattern matching em switch permite corresponder tipos diretamente, combinando o teste de tipo, cast e vinculação em um rótulo de case conciso. O compilador verifica a completude.

Compartilhar 𝕏 🦋 in