Junior — Middle
Kuo skiriasi orElse ir orElseGet metodai Java, ir kokios jų naudojimo ypatybės?
sobes.tech AI
Atsakymas iš AI
Java kalboje metodai orElse ir orElseGet naudojami su klase Optional nustatyti numatytąją reikšmę, jei objektas nėra.
orElse(T other)— priima numatytąją reikšmę, kuri apskaičiuojama iškart kviečiant metodą, nepriklausomai nuo to, arOptionalyra reikšmė.orElseGet(Supplier<? extends T> other)— priima tiekėją (funkciją), kuris yra kviečiamas tik jei reikšmė trūksta, t.y., reikšmės skaičiavimas atidedamas iki būtinybės.
Naudojimo ypatumai:
- Jei numatytosios reikšmės skaičiavimas yra brangus arba turi šalutinių efektų, geriau naudoti
orElseGet, kad išvengtumėte nereikalingų išlaidų. - Jei reikšmė paprasta ir greita, galima naudoti
orElse.
Pavyzdys:
Optional<String> opt = Optional.empty();
// orElse visada skaičiuoja "default"
String result1 = opt.orElse(getDefault());
// orElseGet iškviečia getDefault() tik jei opt tuščias
String result2 = opt.orElseGet(() -> getDefault());
public String getDefault() {
System.out.println("Skaičiuojama numatytoji reikšmė");
return "default";
}