Fallback Optional.or()
Concatena i fallback Optional senza controlli annidati.
Confronto Codice
✕ 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);
Vedi un problema con questo codice? Faccelo sapere.
Perché vince l'approccio moderno
Concatenabile
Impila i fallback in una pipeline leggibile.
Valutazione lazy
I supplier di fallback vengono eseguiti solo se necessario.
Dichiarativo
Si legge come 'prova il primario, o il secondario, o i default'.
Approccio Vecchio
Fallback annidato
Approccio Moderno
Catena .or()
Dal JDK
9
Difficoltà
Intermedio
Supporto JDK
Fallback Optional.or()
Disponibile
Ampiamente disponibile dal JDK 9 (settembre 2017)
Come funziona
Optional.or() restituisce l'Optional originale se ha un valore, altrimenti valuta il supplier per ottenere un Optional alternativo. I supplier sono lazy — chiamati solo quando necessario.
Documentazione Correlata