Java Language Fournissez une valeur par défaut en utilisant un fournisseur


Exemple

La méthode orElse normale prend un Object , donc vous pourriez vous demander pourquoi il existe une option pour fournir un Supplier ici (la méthode orElseGet ).

Considérer:

String value = "something";
return Optional.ofNullable(value)
               .orElse(getValueThatIsHardToCalculate()); // returns "something"

Il appellerait toujours getValueThatIsHardToCalculate() même si son résultat n'est pas utilisé car l'option n'est pas vide.

Pour éviter cette pénalité, vous fournissez un fournisseur:

String value = "something";
return Optional.ofNullable(value)
               .orElseGet(() -> getValueThatIsHardToCalculate()); // returns "something"

De cette manière, getValueThatIsHardToCalculate() sera uniquement appelé si le getValueThatIsHardToCalculate() Optional est vide.