Java 10 - Nuevas API y opciones
La versión JDK 10 ha agregado más de 70 nuevas API y opciones a la biblioteca de Java. Las siguientes son algunas de las mejoras importantes introducidas.
Método opcional.orElseThrow()
Un nuevo método oElseThrow() está disponible en la clase java.util.Optional, que ahora es una alternativa preferida para get() método.
APIs para crear Colecciones No Modificables
Un nuevo método copyOf() está disponible en las interfaces List, Set y Map que pueden crear nuevas instancias de colección a partir de una existente. La clase Collector tiene nuevos métodos toUnmodifiableList(), toUnmodifiableSet() y toUnmodifiableMap() para obtener elementos de un flujo en una colección no modificable.
Deshabilitar el seguimiento del último uso de JRE
Se introduce un nuevo indicador jdk.disableLastUsageTracking que deshabilita el seguimiento del último uso de JRE para una máquina virtual en ejecución.
Contraseña cifrada
El agente JMX ahora sobrescribe las contraseñas de texto sin formato disponibles en el archivo jmxremote.password con su hash SHA3-512.
Compatibilidad con javadoc para múltiples hojas de estilo
Hay una nueva opción disponible para el comando javadoc como --add-stylesheet. Esta opción admite el uso de varias hojas de estilo en la documentación generada.
Compatibilidad con javadoc para anular métodos
Hay una nueva opción disponible para el comando javadoc como --overridden-methods=value. Muchas clases anulan los métodos heredados pero no cambian la especificación. La opción --overridden-methods=value permite agrupar estos métodos con otros métodos heredados, en lugar de documentarlos nuevamente por separado.
Compatibilidad javadoc para Resumen
Está disponible una nueva etiqueta en línea, {@summary ...}, para especificar el texto que se usará como resumen de la descripción de la API. De forma predeterminada, el resumen de la descripción de una API se deduce de la primera oración.
Ejemplo
El siguiente programa muestra el uso de algunas de las nuevas API en JAVA 10.
import java.util.List; import java.util.stream.Collectors; public class Tester { public static void main(String[] args) { var ids = List.of(1, 2, 3, 4, 5); try { // get an unmodifiable list List<Integer> copyOfIds = List.copyOf(ids); copyOfIds.add(6); } catch(UnsupportedOperationException e){ System.out.println("Collection is not modifiable."); } try{ // get an unmodifiable list List<Integer> evenNumbers = ids.stream() .filter(i -> i % 2 == 0) .collect(Collectors.toUnmodifiableList());; evenNumbers.add(6); }catch(UnsupportedOperationException e){ System.out.println("Collection is not modifiable."); } } }
Salida
Imprimirá el siguiente resultado.
Collection is not modifiable. Collection is not modifiable.
Java