Junior — Middle
Java-ში orElse და orElseGet მეთოდების შორის რა განსხვავებაა, და რა არის მათი გამოყენების თავისებურებები?
sobes.tech AI
პასუხი AI-სგან
Java-ში, მეთოდები orElse და orElseGet გამოიყენება Optional კლასთან ერთად, რათა განსაზღვროს საწყისი მნიშვნელობა, თუ ობიექტი არ არსებობს.
orElse(T other)— იღებს საწყის მნიშვნელობას, რომელიც იწერება დაუყოვნებლივ მეთოდის გამოძახებისას, независимо იმაში, აქვს თუ არა მნიშვნელობაOptional-ში.orElseGet(Supplier<? extends T> other)— იღებს მიმწოდებელს (ფუნქციას), რომელიც გამოიძახება მხოლოდ თუ მნიშვნელობა არ არსებობს, ანუ მნიშვნელობის გამოთვლა გადადებულია საჭიროებისამებრ.
გამოყენების მახასიათებლები:
- თუ საწყისი მნიშვნელობის გამოთვლა ძვირია ან აქვს გვერდითი ეფექტები, უკეთესია გამოიყენოთ
orElseGet, რათა თავიდან აიცილოთ არასაჭირო ხარჯები. - თუ მნიშვნელობა მარტივია და სწრაფი, შეიძლება გამოიყენოთ
orElse.
მაგალითი:
Optional<String> opt = Optional.empty();
// orElse ყოველთვის ითვლის "default"
String result1 = opt.orElse(getDefault());
// orElseGet მხოლოდ მაშინ იძახის getDefault(), თუ opt ცარიელია
String result2 = opt.orElseGet(() -> getDefault());
public String getDefault() {
System.out.println("წინასწარ განსაზღვრული მნიშვნელობის გამოთვლა");
return "default";
}