- Com lançamento previsto para 19/9/2023, o Java 21 oferece suporte a padrões de record em blocos e expressões
switch, uma atualização importante que aproxima o Java de padrões de programação funcional como os de Kotlin, Rust e C#
- O Java evoluiu rapidamente na última década e, desde o Java 9, recebe grandes atualizações a cada 6 meses
- O Java 21 estabiliza padrões de record e pattern matching em
switch, permitindo representar tipos de dados algébricos, um elemento central da programação funcional
- O conceito de tipos de dados algébricos é explicado por meio da teoria dos tipos, um campo da teoria dos conjuntos
- A nova versão também introduz o recurso de pattern matching, que permite validação estática de padrões de dados específicos
- O Java 21 também introduz classes ou interfaces sealed para que desenvolvedores possam controlar a interação dos usuários com APIs de bibliotecas
- Classes ou interfaces sealed dão suporte a padrões de design baseados no conceito de tipos soma, o que significa que, em um dado momento, um tipo pode ser um de seus componentes
- A nova versão também traz cláusulas de guarda, que permitem expressar condições complexas de forma concisa dentro de instruções e expressões
switch
- O Java 21 introduz uma nova classe de exceção,
java.lang.MatchException, que ocorre quando um pattern match falha de forma indevida
- Este artigo discute o uso de blocos
switch no Java 21 e como eles podem gerar MatchException sob certas condições
MatchException ocorre quando o bloco switch não corresponde nem ao seletor nem a nenhuma das variantes especificadas, algo considerado bastante incomum
- A Java Enhancement Proposal (JEP) 441 reconhece que métodos de acesso de record que sempre lançam exceção são extremamente incomuns
- O artigo fornece um exemplo de bloco
switch que gera MatchException por causa de um erro de divisão por zero em uma cláusula de guarda
- O autor observa que a situação fica mais complexa quando o dividendo em uma operação de divisão é um valor dinâmico que pode ser zero
- Este artigo faz parte de uma série que explora os novos recursos e capacidades do Java 21, e no futuro analisará algumas características interessantes com exemplos práticos de como elas podem melhorar a escrita de código Java
- O autor menciona que certos tópicos, como a forma como generics interagem com padrões em
switch, não são abordados neste artigo, mas podem ser tratados em textos futuros
- Este artigo é relevante para pessoas interessadas em pattern matching na JVM, programação funcional, Java 21 e tipos algébricos
Ainda não há comentários.