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, orElse və orElseGet 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,Optionaliç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
orElseGetistifadə etmək daha yaxşıdır. - Əgər dəyər sadə və sürətlidirsə,
orElseistifadə 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";
}