Optional.orElseThrow() sans supplier
Utilisez Optional.orElseThrow() comme alternative plus claire et intentionnelle à get().
Comparaison de Code
✕ Java 8
// Risky: get() throws if empty, no clear intent
String value = optional.get();
// Verbose: supplier just for NoSuchElementException
String value = optional
.orElseThrow(NoSuchElementException::new);
✓ Java 10+
// Clear intent: throws NoSuchElementException if empty String value = optional.orElseThrow();
Un problème avec ce code ? Dites-le nous.
Pourquoi la méthode moderne gagne
Auto-documenté
orElseThrow() signale clairement que l'absence est inattendue.
Évite get()
Les outils d'analyse statique signalent get() comme risqué ; orElseThrow() est idiomatique.
Moins de code répétitif
Pas besoin de passer un supplier pour la NoSuchElementException par défaut.
Ancienne Approche
get() ou orElseThrow(supplier)
Approche Moderne
orElseThrow()
Depuis JDK
10
Difficulté
Débutant
Support JDK
Optional.orElseThrow() sans supplier
Disponible
Disponible depuis JDK 10 (mars 2018)
Comment ça fonctionne
Optional.get() est largement considéré comme un anti-pattern car il cache la possibilité d'échec. La méthode orElseThrow() sans arguments, ajoutée dans Java 10, fait exactement la même chose mais rend l'intention claire : le développeur attend une valeur et veut une exception si elle est absente.
Documentation Associée