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.
