Sobes.tech
Junior — Middle

Java-da orElse və orElseGet metodları arasındakı fərq nədir və onların istifadə xüsusiyyətləri nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da, orElseorElseGet metodları, obyekt mövcud olmadıqda standart dəyər təyin etmək üçün Optional sinfi ilə istifadə olunur.

  • orElse(T other) — çağırış zamanı dərhal hesablanan standart dəyər qəbul edir, Optional içində dəyər olub-olmamasından asılı olmayaraq.
  • orElseGet(Supplier<? extends T> other) — yalnız dəyər yoxdursa çağırılan təminatçı (funksiya) qəbul edir, yəni dəyər hesablaması lazım olduqda gecikdirilir.

İstifadə xüsusiyyətləri:

  • Əgər standart dəyərin hesablanması bahalıdırsa və ya yan təsirlərə malikdirsə, lazımsız xərcləri qarşısını almaq üçün orElseGet istifadə etmək daha yaxşıdır.
  • Əgər dəyər sadə və sürətlidirsə, orElse istifadə edilə bilər.

Nümunə:

Optional<String> opt = Optional.empty();

// orElse həmişə "default" hesablayır
String result1 = opt.orElse(getDefault());

// orElseGet yalnız opt boşdursa getDefault() çağırır
String result2 = opt.orElseGet(() -> getDefault());

public String getDefault() {
    System.out.println("Standart dəyər hesablanır");
    return "default";
}