Optional.or() comme alternative
Enchaînez des alternatives d'Optional sans vérifications imbriquées.
Comparaison de Code
✕ Java 8
Optional<Config> cfg = primary();
if (!cfg.isPresent()) {
cfg = secondary();
}
if (!cfg.isPresent()) {
cfg = defaults();
}
✓ Java 9+
Optional<Config> cfg = primary()
.or(this::secondary)
.or(this::defaults);
Un problème avec ce code ? Dites-le nous.
Pourquoi la méthode moderne gagne
Enchaînable
Empilez des alternatives dans un pipeline lisible.
Évaluation paresseuse
Les suppliers alternatifs ne s'exécutent que si nécessaire.
Déclaratif
Se lit comme 'essayez le primaire, ou le secondaire, ou les valeurs par défaut'.
Ancienne Approche
Alternative imbriquée
Approche Moderne
Chaîne .or()
Depuis JDK
9
Difficulté
Intermédiaire
Support JDK
Optional.or() comme alternative
Disponible
Disponible depuis JDK 9 (sept. 2017)
Comment ça fonctionne
Optional.or() retourne l'Optional original s'il a une valeur, sinon évalue le supplier pour obtenir un Optional alternatif. Les suppliers sont paresseux — ils ne sont invoqués que si nécessaire.
Documentation Associée