Sobes.tech
Junior — Middle

Java'da orElse va orElseGet metodlari orasidagi farq nima, va ularning foydalanish xususiyatlari qanday?

sobes.tech AI

AIdan javob

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";
}