Sobes.tech
Junior — Middle

Java'da orElse ve orElseGet yöntemleri arasındaki fark nedir ve kullanım özellikleri nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da, orElse ve orElseGet metodları, nesne yoksa varsayılan bir değer belirlemek için Optional sınıfıyla kullanılır.

  • orElse(T other) — çağrı sırasında hemen hesaplanan bir varsayılan değer alır, Optional içinde değer olup olmamasına bakılmaksızın.
  • orElseGet(Supplier<? extends T> other) — yalnızca değer yoksa çağrılan bir sağlayıcı (fonksiyon) alır, yani değer hesaplaması gerekirse ertelenir.

Kullanım özellikleri:

  • Varsayılan değerin hesaplanması maliyetliyse veya yan etkileri varsa, gereksiz maliyetleri önlemek için orElseGet kullanmak daha iyidir.
  • Değer basit ve hızlıysa, orElse kullanılabilir.

Örnek:

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

// orElse her zaman "default" hesaplar
String result1 = opt.orElse(getDefault());

// orElseGet yalnızca opt boşsa getDefault()'u çağırır
String result2 = opt.orElseGet(() -> getDefault());

public String getDefault() {
    System.out.println("Varsayılan değeri hesaplıyoruz");
    return "default";
}