25 Aralık 2020 Cuma

Optional.orElse metodu - Sabit Değer Döner

Giriş
Optional.orElse() daha çok metod sonucunda null dönme ihtimali varsa null dönmek yerine default bir değer dönmek için kullanılır. Açıklaması şöyle. yapılır.
Returns the value if present otherwise, returns other.
İmzası şöyle
public T orElse(T other)
//If a value is present, returns the value, otherwise returns other.
//Parameters:
//other - the value to be returned, if no value is present. May be null.
//Returns:
//the value, if present, otherwise other

İlgili Metodlar
orElse ile ilgili diğer metodlar şöyle
isPresentOrElse() 

orElseGet() ile Farkı
orElseGet() lazy çalışır. orElse() ise lazy değildir

Elimizde şöyle bir kod olsun.  orElse() kullandığımız için myFunc() metodunun çağrıldığını görürüz.
Optional<Foo> opt = ...
opt.orElse(myFunc(...));
orElseGet() lamda aldığı için lazy. Dolayısıyla çözüm olarak şöyle yapmak gerekir.
opt.orElseGet(() -> myFunc(...));
Yanlış Kullanım
Örnek - orElse(null)
Varsayılan değer olarak null dönmek çok iyi bir fikir değil.

Doğru Kullanım
Örnek
Elimizde şöyle bir kod olsun
public String getPersonName() {
  Optional<String> name = getName();
  if (name.isPresent()) {
    return name.get();
  }
  return "DefaultName";
}
Bu kodu şöyle yapabilirim
public String getPersonName() {
  Optional<String> name = getName();
  return name.orElse("DefautName");
}

Hiç yorum yok:

Yorum Gönder