Java 10 : 70+ nouvelles API et fonctionnalités expliquées
JDK 10 a ajouté plus de 70 nouvelles API et options. Voici les améliorations les plus importantes :
1. Optional.orElseThrow()
Nouvelle méthode dans java.util.Optional, alternative préférée à get() (qui lance NoSuchElementException sans message clair). orElseThrow() lance la même exception mais avec une sémantique plus explicite.
2. API pour créer des collections immuables
List.copyOf(),Set.copyOf(),Map.copyOf(): créent une copie immuable d'une collection existante.Collectors.toUnmodifiableList(),toUnmodifiableSet(),toUnmodifiableMap(): collectent un flux dans une collection immuable.
3. Désactiver le suivi d'utilisation du JRE
Nouveau drapeau jdk.disableLastUsageTracking pour désactiver le suivi de la dernière utilisation du JRE par une VM en cours d'exécution.
4. Mots de passe hachés dans jmxremote.password
Les mots de passe en clair dans jmxremote.password sont maintenant remplacés par leur hachage SHA3-512 par l'agent JMX.
5. Javadoc : support de plusieurs feuilles de style
Nouvelle option --add-stylesheet pour la commande javadoc, permettant d'utiliser plusieurs feuilles de style dans la documentation générée.
6. Javadoc : regroupement des méthodes redéfinies
Option --overridden-methods=value pour grouper les méthodes héritées non modifiées avec les autres méthodes héritées, au lieu de les documenter séparément.
7. Javadoc : balise inline {@summary ...}
Permet de spécifier explicitement le texte de résumé de la description d'API (par défaut : première phrase).
Exemple : collections immuables
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 {
List<Integer> copyOfIds = List.copyOf(ids);
copyOfIds.add(6); // Lève UnsupportedOperationException
} catch (UnsupportedOperationException e) {
System.out.println("Collection non modifiable.");
}
try {
List<Integer> evenNumbers = ids.stream()
.filter(i -> i % 2 == 0)
.collect(Collectors.toUnmodifiableList());
evenNumbers.add(6); // Lève UnsupportedOperationException
} catch (UnsupportedOperationException e) {
System.out.println("Collection non modifiable.");
}
}
}
Sortie :
Collection non modifiable.
Collection non modifiable.
Ces ajouts renforcent l'immuabilité, la sécurité et la lisibilité du code Java moderne.
Java
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Commentaires Java : Types, utilisation et bonnes pratiques
- Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
- Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code