Considere outro exemplo, este avaliando precisão decimal:


double measurement = 17.5;
if (measurement instanceof float simpleMeasurement) {
    System.out.println("No precision loss: " + simpleMeasurement);
} else {
    System.out.println("Requires double precision");
}

Isso verifica se o double o valor pode ser representado como um float sem perda de precisão.

Aqui está um exemplo usando o padrão de tipo primitivo que corresponde aos caracteres de texto:


int codePoint = 90;
if (codePoint instanceof char symbol) {
    System.out.println("This represents: '" + symbol + "'");
} else {
    System.out.println("Not a valid character code");
}

A saída deste código seria: This represents: ‘Z’porque 90 é o valor ASCII/Unicode para Z.

Finalmente, aqui está uma demonstração mostrando verificações de compatibilidade de vários tipos:


void examineNumber(long input) {
    System.out.println("Examining: " + input);
    
    if (input instanceof byte b)
        System.out.println("Fits in a byte variable: " + b);    
    if (input instanceof short s)
        System.out.println("Fits in a short variable: " + s);
    if (input >= 0 && input 

Quando chamado com examineNumber(77)esse código em produza todas as quatro mensagens, incluindo que 77 representa o personagem ‘M’.

Quando usar a correspondência de padrões do tipo primitivo

A correspondência de padrões de tipo primitivo é particularmente valiosa para os seguintes usos:

  • Validando a entrada do usuário contra intervalos aceitáveis.
  • Converter entre formatos numéricos, evitando a perda de dados.
  • Trabalhando com a codificação de caracteres no processamento de texto.
  • Tornando as conversões do tipo numérico mais legíveis e seguras.

Conclusão

A correspondência de padrões representa uma evolução significativa na sintaxe de Java, trazendo maneiras mais expressivas e concisas de trabalhar com dados. Ao combinar a verificação de tipos, fundição e extração de dados em operações unificadas, ele reduz a caldeira e torna o código mais legível e sustentável.

Os desenvolvedores Java agora podem escrever código mais limpo ao trabalhar com dados polimórficos, estruturas aninhadas e processamento condicional. Recursos básicos de correspondência de padrões (como aprimorados instanceof) estão disponíveis na Java 16 em diante, enquanto recursos mais avançados (como padrões de registro e padrões protegidos) surgiram em Java 21.

À medida que esse recurso continua a amadurecer em lançamentos futuros, fortalecerá ainda mais a posição de Java como um idioma que equilibra o desempenho, a segurança e a expressividade. Se você ainda não jogou com a correspondência de padrões, crie algum código e execute alguns testes para absorver o conhecimento. A melhor maneira de adquirir uma habilidade é colocá -la em prática.