Streams Intermedio

Encadena alternativas de Optional sin verificaciones anidadas.

✕ 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);
¿Ves un problema con este código? Cuéntanos.
🔗

Encadenable

Apila alternativas en un pipeline legible.

Evaluación perezosa

Los suppliers alternativos solo se ejecutan si es necesario.

📖

Declarativo

Se lee como 'intenta primario, o secundario, o valores por defecto'.

Enfoque Antiguo
Alternativa anidada
Enfoque Moderno
Cadena .or()
Desde JDK
9
Dificultad
Intermedio
Optional.or() como alternativa
Disponible

Ampliamente disponible desde JDK 9 (sept. 2017)

Optional.or() devuelve el Optional original si tiene valor, de lo contrario evalúa el supplier para obtener un Optional alternativo. Los suppliers son perezosos — solo se invocan cuando es necesario.

Compartir 𝕏 🦋 in