Maison >Java >javaDidacticiel >Quand utiliser `Optional.orElseGet()` plutôt que `Optional.orElse()` ?
La classe Optionnelle en Java fournit des méthodes pratiques pour gérer et renvoyer des valeurs qui peuvent ou non être présent. Deux méthodes importantes dans cette classe sont orElse() et orElseGet(). La principale différence entre ces méthodes réside dans le moment où la valeur de secours ou le calcul est invoqué.
La méthode orElse() prend une valeur par défaut comme argument et renvoie celle-ci. valeur si l’instance facultative est vide. Il n'attend pas que isPresent() soit évalué, mais évalue et renvoie immédiatement la valeur de secours fournie, même si l'instance facultative n'est pas vide.
En revanche, le La méthode orElseGet() prend une interface Fournisseur comme argument, vous permettant de définir un calcul qui s'exécute uniquement lorsque l'instance facultative est vide. Cette approche est plus efficace lorsque la valeur de repli est coûteuse à calculer et ne doit être effectuée que lorsque cela est nécessaire.
Envisagez d'utiliser orElseGet() au lieu de orElse() dans les scénarios suivants :
Considérez l'exemple suivant :
<code class="java">Optional<String> optional = Optional.ofNullable("Hello"); // Always computes the fallback value. String result1 = optional.orElse("World"); // Computes the fallback value only if the optional is empty. String result2 = optional.orElseGet(() -> { // Expensive computation here return "World"; });</code>
Dans cet exemple, result1 contiendra toujours "World" car la valeur de secours est évaluée quelle que soit l'option présente. En revanche, result2 ne se verra attribuer "Monde" que si l'option est vide, permettant de meilleures performances lorsque le calcul est coûteux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!