Junior — Middle
Java'da orElse va orElseGet metodlari orasidagi farq nima, va ularning foydalanish xususiyatlari qanday?
sobes.tech AI
AIdan javob
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";
}