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,Optionaliç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
orElseGetkullanmak daha iyidir. - Değer basit ve hızlıysa,
orElsekullanı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";
}