Détermination de la différence entre Optionnel.orElse() et Optionnel.orElseGet()
En Java, la classe Optionnelle fournit des méthodes comme orElse( ) et orElseGet() pour gérer les valeurs potentiellement manquantes ou nulles. Comprendre leurs nuances est crucial pour une utilisation efficace.
orElse() vs. orElseGet()
Quand utiliser orElseGet()
Exemple avec une fonction du monde réel
Pour illustrer la différence, considérons la fonction suivante :
<code class="java">public Optional<String> findMyPhone(int phoneId)</code>
Scénario 1 : orElse()
Quand optionnel.isPresent() == true :
Quand optionnel.isPresent() == false :
Scénario 2 : orElseGet()
Quand optionnel.isPresent() == true :
Quand optionnel.isPresent() == false :
Exemple de code
<code class="java">public class TestOptional { public Optional<String> findMyPhone(int phoneId) { return phoneId == 10 ? Optional.of("MyCheapPhone") : Optional.empty(); } public String buyNewExpensivePhone() { System.out.println("Going to a very far store to buy a new expensive phone"); return "NewExpensivePhone"; } public static void main(String[] args) { // Scenario 1: orElse() Optional<String> phone = findMyPhone(10).orElse(buyNewExpensivePhone()); // Scenario 2: orElseGet() phone = findMyPhone(-1).orElseGet(() -> buyNewExpensivePhone()); } }</code>
Le le code démontre les différents comportements de orElse() et orElseGet() en fonction de la présence ou de l'absence de la valeur facultative.
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!