Java 10 - Nieuwe API's en opties
JDK 10-release heeft 70+ nieuwe API's en opties toegevoegd aan de Java-bibliotheek. Hieronder volgen enkele van de belangrijke verbeteringen die zijn geïntroduceerd.
Optional.orElseThrow() Methode
Een nieuwe methode orElseThrow() is beschikbaar in java.util.Optional klasse die nu een voorkeursalternatief is voor get() methode.
API's om niet-aanpasbare collecties te maken
Een nieuwe methode copyOf() is beschikbaar in de interfaces List, Set en Map waarmee nieuwe verzamelingsinstanties kunnen worden gemaakt op basis van een bestaande. De klasse Collector heeft nieuwe methoden toUnmodifiableList(), toUnmodifiableSet() en toUnmodifiableMap() om elementen van een stream in een niet-wijzigbare verzameling te krijgen.
Bijhouden van laatste gebruik JRE uitschakelen
Er wordt een nieuwe vlag geïntroduceerd jdk.disableLastUsageTracking die het volgen van het laatste gebruik van JRE voor een draaiende VM uitschakelt.
Gehashed wachtwoord
De wachtwoorden in platte tekst die beschikbaar zijn in het bestand jmxremote.password worden nu door de JMX-agent overschreven met hun SHA3-512-hash.
javadoc-ondersteuning voor meerdere stylesheets
Een nieuwe optie is beschikbaar voor het javadoc-commando als --add-stylesheet. Deze optie ondersteunt het gebruik van meerdere stylesheets in gegenereerde documentatie.
javadoc-ondersteuning voor overschrijvende methoden
Een nieuwe optie is beschikbaar voor het javadoc-commando als --overridden-methods=value. Zoals veel klassen overgenomen methoden overschrijven, maar de specificatie niet wijzigen. Met de optie --overridden-methods=value kunnen deze methoden worden gegroepeerd met andere overgeërfde methoden, in plaats van ze opnieuw afzonderlijk te documenteren.
javadoc-ondersteuning voor samenvatting
Er is een nieuwe inline-tag, {@summary ...}, beschikbaar om de tekst op te geven die moet worden gebruikt als samenvatting van de API-beschrijving. Standaard wordt de samenvatting van een API-beschrijving afgeleid uit de eerste zin.
Voorbeeld
Het volgende programma toont het gebruik van enkele van de nieuwe API's in 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."); } } }
Uitvoer
Het zal de volgende uitvoer afdrukken.
Collection is not modifiable. Collection is not modifiable.
Java