Java Language Renvoie la valeur par défaut si Facultatif est vide


Exemple

Ne vous contentez pas d'utiliser Optional.get() car cela peut NoSuchElementException . Les méthodes Optional.orElse(T) et Optional.orElseGet(Supplier<? extends T>) permettent de fournir une valeur par défaut dans le cas où l'option Facultatif est vide.

String value = "something";

return Optional.ofNullable(value).orElse("defaultValue");
// returns "something"

return Optional.ofNullable(value).orElseGet(() -> getDefaultValue());
// returns "something" (never calls the getDefaultValue() method)
String value = null;

return Optional.ofNullable(value).orElse("defaultValue");
// returns "defaultValue"

return Optional.ofNullable(value).orElseGet(() -> getDefaultValue());
// calls getDefaultValue() and returns its results

La différence cruciale entre orElse et orElseGet fait que ce dernier n'est évalué que lorsque le orElseGet Optional est vide, tandis que l'argument fourni au précédent est évalué même si le paramètre Facultatif n'est pas vide. L' orElse ne doit donc être utilisé que pour les constantes et jamais pour fournir une valeur basée sur un calcul quelconque.