Streams Intermediário

Encadeie fallbacks de Optional sem verificações aninhadas.

✕ 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);
Viu um problema com este código? Nos avise.
🔗

Encadeável

Empilhe fallbacks em um pipeline legível.

Avaliação lazy

Os suppliers de fallback só executam quando necessário.

📖

Declarativo

Lê-se como 'tente primário, ou secundário, ou padrão'.

Abordagem Antiga
Fallback aninhado
Abordagem Moderna
Encadeamento com .or()
Desde o JDK
9
Dificuldade
Intermediário
Fallback com Optional.or()
Disponível

Amplamente disponível desde o JDK 9 (setembro de 2017)

Optional.or() retorna o Optional original se contiver um valor, caso contrário avalia o supplier para obter um Optional alternativo. Os suppliers são lazy — só são chamados quando necessário.

Compartilhar 𝕏 🦋 in