Streams Intermédiaire

Enchaînez des alternatives d'Optional sans vérifications imbriquées.

✕ 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.
🔗

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
Optional.or() comme alternative
Disponible

Disponible depuis JDK 9 (sept. 2017)

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.

Partager 𝕏 🦋 in