Junior — Middle
Wat is het verschil tussen de methoden orElse en orElseGet in Java, en wat zijn hun gebruikskenmerken?
sobes.tech AI
Antwoord van AI
In Java worden de methoden orElse en orElseGet gebruikt met de klasse Optional om een standaardwaarde toe te wijzen als het object afwezig is.
orElse(T other)— accepteert een standaardwaarde die onmiddellijk wordt berekend bij het aanroepen van de methode, ongeacht of er een waarde inOptionalis.orElseGet(Supplier<? extends T> other)— accepteert een leverancier (functie) die alleen wordt aangeroepen als de waarde ontbreekt, dat wil zeggen, de berekening van de waarde wordt uitgesteld tot dat het nodig is.
Gebruiksspecificaties:
- Als de berekening van de standaardwaarde duur is of bijwerkingen heeft, is het beter om
orElseGette gebruiken om onnodige kosten te voorkomen. - Als de waarde eenvoudig en snel is, kan
orElseworden gebruikt.
Voorbeeld:
Optional<String> opt = Optional.empty();
// orElse berekent altijd "default"
String result1 = opt.orElse(getDefault());
// orElseGet roept getDefault() alleen aan als opt leeg is
String result2 = opt.orElseGet(() -> getDefault());
public String getDefault() {
System.out.println("Berekenen van de standaardwaarde");
return "default";
}