Streams Principiante

Gestisci entrambi i casi di Optional presente e vuoto in una chiamata.

✕ Java 8
Optional<User> user = findUser(id);
if (user.isPresent()) {
    greet(user.get());
} else {
    handleMissing();
}
✓ Java 9+
findUser(id).ifPresentOrElse(
    this::greet,
    this::handleMissing
);
Vedi un problema con questo codice? Faccelo sapere.
📏

Espressione singola

Entrambi i casi gestiti in una singola chiamata a metodo.

🚫

Nessun get()

Elimina il pericoloso pattern isPresent() + get().

🔗

Fluente

Si concatena naturalmente dopo findUser() o qualsiasi metodo che restituisce Optional.

Approccio Vecchio
if/else su Optional
Approccio Moderno
ifPresentOrElse()
Dal JDK
9
Difficoltà
Principiante
Optional.ifPresentOrElse()
Disponibile

Ampiamente disponibile dal JDK 9 (settembre 2017)

ifPresentOrElse() accetta un Consumer per il caso presente e un Runnable per il caso vuoto. Evita l'anti-pattern isPresent/get.

Condividi 𝕏 🦋 in