Heim >Java >javaLernprogramm >Wann sollte ich in Java Optional.orElseGet() anstelle von Optional.orElse() verwenden?
Bestimmen des Unterschieds zwischen Optional.orElse() und Optional.orElseGet()
In Java stellt die Optional-Klasse Methoden wie orElse( ) und orElseGet() für den Umgang mit potenziell fehlenden oder Nullwerten. Das Verständnis ihrer Nuancen ist für eine effektive Nutzung von entscheidender Bedeutung.
orElse() vs. orElseGet()
Wann ist orElseGet() zu verwenden?
Beispiel mit realer Funktion
Um den Unterschied zu veranschaulichen, betrachten Sie die folgende Funktion:
<code class="java">public Optional<String> findMyPhone(int phoneId)</code>
Szenario 1: orElse()
Wenn optional.isPresent() == true:
Wenn optional.isPresent() == false:
Szenario 2: orElseGet()
Wann optional.isPresent() == true:
Wenn optional.isPresent() == false :
Codebeispiel
<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>
The Der Code demonstriert das unterschiedliche Verhalten von orElse() und orElseGet() basierend auf dem Vorhandensein oder Fehlen des optionalen Werts.
Das obige ist der detaillierte Inhalt vonWann sollte ich in Java Optional.orElseGet() anstelle von Optional.orElse() verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!