4 puntos por GN⁺ 2023-09-18 | Aún no hay comentarios. | Compartir por WhatsApp
  • 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.

Aún no hay comentarios.