Java 10: Probando las nuevas funcionalidades


Introducción

Como probablemente ya sabrás, Java 10 se liberó el pasado 20 de marzo siguiendo el nuevo programa para liberar versiones cada 6 meses. Esta versión viene tras el lanzamiento de Java 9 el pasado septiembre de 2017 y deja esta última version obsoleta.

Java 11 se liberará como una versión de soporte prolongado (LTS) y tendrá un periodo de vida mucho más amplio, pero hasta entonces, veamos cuáles son algunas de las nueva funcionalidades en Java 10.

Versionado de lanzamientos basado en tiempo

Java 10 introduce el nuevo versionado basado en tiempo (JEP 322) que es una reestructuración de JEP 223 liberado en Java 9 para permitir el nuevo modelo de lanzamientos. De ahora en adelante los números de versión seguirán este patrón:
$FEATURE.$INTERIM.$UPDATE.$PATCH
Cada 6 meses una nueva versión de funcionalidad (feature release) se liberará, cada 3 años (comenzando en septiembre de 2018) la versión de funcionalidad será de soporte prolongado (LTS).

new JDK Release model

Inferencia en el tipo de variables locales

Java 10 incluye varias funcionalidades nuevas, aunque de todas ellas, probablemente la más aparente para la mayoría de nosotros es JEP 286: Local-Variable Type Inference. Esta funcionalidad mejora la experiencia de desarrollo al eliminar el código adicional, necesario hasta ahora, para declarar variables locales expresando el tipado completo de la variable.

De ahora en adelante las variables locales podrán declararse empleando la palabra reservada var, la seguridad de tipado se preservará ya que el tipo de la variable se determinará en el momento en el que se le asigne un valor por primera vez.

De este modo, el siguiente código dará un error de compilación:

Local-variable type inference

Otras funcionalidades incluidas en esta versión

Mejoras en esta versión

Método Optional.orElseThrow()

Se ha creado un método adicional orElseThrow() en la clase Optional para reemplazar el método estándar get() ya que el nombre de éste era confuso y los desarrolladores podrían no esperarse que un “getter” lanzase una excepción. A partir de ahora ésta será la alternativa recomendada, en futuras versiones el método get() se marcará como obsoleto.

Collectors inmodificables

Nuevos métodos  toUnmodifiableList(), toUnmodifiableSet() y toUnmodifiableMap() se han añadido a la clase Collectors para facilitar la creación de colecciones inmodifcables.

Sourcecode

El código fuente completo de este artículo con tests para las nuevas funcionalidades y mejoras puede encontrarse en GitHub.

Java 10

Tweet about this on TwitterShare on FacebookShare on LinkedInShare on Google+Pin on PinterestEmail this to someone

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *