Streams Principiante

Maneja ambos casos de Optional, presente y vacío, en una sola llamada.

✕ Java 8
Optional<User> user = findUser(id);
if (user.isPresent()) {
    greet(user.get());
} else {
    handleMissing();
}
✓ Java 9+
findUser(id).ifPresentOrElse(
    this::greet,
    this::handleMissing
);
¿Ves un problema con este código? Cuéntanos.
📏

Expresión única

Ambos casos se manejan en una sola llamada al método.

🚫

Sin get()

Elimina el peligroso patrón isPresent() + get().

🔗

Fluido

Se encadena naturalmente después de findUser() o cualquier método que devuelva Optional.

Enfoque Antiguo
if/else sobre Optional
Enfoque Moderno
ifPresentOrElse()
Desde JDK
9
Dificultad
Principiante
Optional.ifPresentOrElse()
Disponible

Ampliamente disponible desde JDK 9 (sept. 2017)

ifPresentOrElse() recibe un Consumer para el caso presente y un Runnable para el caso vacío. Evita el antipatrón isPresent/get.

Compartir 𝕏 🦋 in