- Java 21, cuyo lanzamiento está previsto para el 19/9/2023, admite patrones de registros en bloques y expresiones
switch, una actualización importante que acerca más a Java a los patrones de programación funcional de lenguajes como Kotlin, Rust y C#
- Java ha evolucionado rápidamente durante la última década y, desde Java 9, ha recibido actualizaciones importantes cada 6 meses
- Java 21 estabiliza los patrones de registros y el pattern matching en
switch, lo que permite expresar tipos de datos algebraicos, un elemento central de la programación funcional
- El concepto de tipos de datos algebraicos se explica a través de la teoría de tipos, un área de la teoría de conjuntos
- La nueva versión también introduce la funcionalidad de pattern matching, que permite la verificación estática de patrones de datos específicos
- Java 21 introduce clases o interfaces selladas para que los desarrolladores puedan controlar la interacción de los usuarios con la API de una biblioteca
- Las clases o interfaces selladas admiten un patrón de diseño basado en el concepto de tipo suma, lo que significa que en un momento dado un tipo puede ser uno de sus componentes
- La nueva versión también incluye cláusulas de guarda que permiten expresar de forma concisa condiciones complejas dentro de sentencias y expresiones
switch
- Java 21 introduce una nueva clase de excepción,
java.lang.MatchException, que se produce cuando un pattern match falla de forma incorrecta
- Este artículo analiza el uso de bloques
switch en Java 21 y cómo pueden provocar MatchException bajo ciertas condiciones
MatchException ocurre cuando un bloque switch no coincide ni con el selector ni con ninguna de las variantes especificadas, algo que se considera muy inusual
- Java Enhancement Proposal (JEP) 441 reconoce que es muy inusual que un método de acceso de registro que siempre lanza una excepción exista
- El artículo ofrece un ejemplo de un bloque
switch que provoca MatchException debido a un error de división entre cero en una cláusula de guarda
- El autor señala que la situación se vuelve más compleja cuando el dividendo en una operación de división es un valor dinámico que puede ser 0
- Este artículo forma parte de una serie que explora las nuevas características y capacidades de Java 21, y en adelante revisará algunas funciones interesantes junto con ejemplos prácticos de cómo pueden usarse para mejorar la escritura de código Java
- El autor menciona que ciertos temas, como la forma en que los genéricos interactúan con los patrones
switch, no se tratan en este artículo, pero podrían abordarse en artículos futuros
- Este artículo es relevante para quienes estén interesados en pattern matching en la JVM, programación funcional, Java 21 y tipos algebraicos
Aún no hay comentarios.