Sobes.tech
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 only calls getDefault() if opt is empty
String result2 = opt.orElseGet(() -> getDefault());

public String getDefault() {
    System.out.println("Өлчөмдө алдын ала маанини эсептөө");
    return "default";
}