Feature Java: Pattern Matching of switch

Por Gaspar Barancelli Junior em 28 de abril de 2024

O Java 21, traz uma funcionalidade para tornar o código mais claro e eficiente: o pattern matching for switch. Esta funcionalidade, que já vinha sendo testada em versões anteriores desde o Java 17, 18, 19 e 20, finalmente chega à sua forma final, oferecendo uma nova maneira de lidar com expressões condicionais.

O que mudou?

Antes do Java 21, usar muitas condições if…​else para verificar tipos e condições era comum, mas isso podia tornar o código extenso e difícil de manter. Com o pattern matching, esses blocos de código podem ser substituídos por uma única estrutura de switch, tornando tudo mais simples e direto.

Exemplo

Antes do Java 21

Imagine que você quer formatar diferentes tipos de dados. Anteriormente, você poderia ter escrito algo como:

static String formatter(Object obj) {
    String formatted = "unknown";
    if (obj instanceof Integer i) {
        formatted = String.format("int %d", i);
    } else if (obj instanceof Long l) {
        formatted = String.format("long %d", l);
    } else if (obj instanceof Double d) {
        formatted = String.format("double %f", d);
    } else if (obj instanceof String s) {
        formatted = String.format("String %s", s);
    }
    return formatted;
}
Com Java 21

Usando o pattern matching para switch, o mesmo código fica muito mais limpo:

static String formatterPatternSwitch(Object obj) {
    return switch (obj) {
        case Integer i -> String.format("int %d", i);
        case Long l    -> String.format("long %d", l);
        case Double d  -> String.format("double %f", d);
        case String s  -> String.format("String %s", s);
        default        -> "unknown";
    };
}

Neste novo código, cada caso do switch define claramente o que fazer com cada tipo de objeto, tornando o código não só mais fácil de escrever, mas também de ler e manter.

Benefícios

A introdução do pattern matching em switch traz vários benefícios:

  • Clareza e Concisão: O código torna-se mais legível e conciso.

  • Redução de Erros: Menos propenso a erros, eliminando a necessidade de múltiplos casts e verificações de tipo.

  • Desempenho: Potencial para melhor desempenho devido à otimização na comparação de padrões.

Conclusão

A chegada do pattern matching para switch no Java 21 representa uma verdadeira evolução na maneira como os programadores podem gerenciar e manipular dados em suas aplicações. Além de reduzir a complexidade do código, essa nova funcionalidade estimula uma programação mais intuitiva e segura, eliminando a redundância e os erros comuns associados ao uso extensivo de condicionais if…​else.

// Compartilhe esse Post

💫
🔥 NOVO APP

Domine o Inglês em 30 dias!

Inteligência Artificial + Repetição Espaçada • Método cientificamente comprovado

✅ Grátis para começar 🚀 Resultados rápidos
×