Streams Débutant

Gérez les deux cas d'Optional, présent et vide, en un seul appel.

✕ Java 8
Optional<User> user = findUser(id);
if (user.isPresent()) {
    greet(user.get());
} else {
    handleMissing();
}
✓ Java 9+
findUser(id).ifPresentOrElse(
    this::greet,
    this::handleMissing
);
Un problème avec ce code ? Dites-le nous.
📏

Expression unique

Les deux cas sont gérés en un seul appel de méthode.

🚫

Sans get()

Élimine le dangereux pattern isPresent() + get().

🔗

Fluide

S'enchaîne naturellement après findUser() ou toute méthode qui retourne Optional.

Ancienne Approche
if/else sur Optional
Approche Moderne
ifPresentOrElse()
Depuis JDK
9
Difficulté
Débutant
Optional.ifPresentOrElse()
Disponible

Disponible depuis JDK 9 (sept. 2017)

ifPresentOrElse() reçoit un Consumer pour le cas présent et un Runnable pour le cas vide. Évite l'anti-pattern isPresent/get.

Partager 𝕏 🦋 in