10 Ağustos 2021 Salı

Optional.ifPresentOrElse metodu

Giriş
İmzası şöyle. Java 9 ile geliyor. İki tane lambda alır.
void ifPresentOrElse(Consumer<? super T> action,Runnable emptyAction)
ilgili diğer metodlar şöyle
orElse()

Örnek
Şöyle yaparız.
element.ifPresentOrElse(el -> System.out.println("Present " + el,
                        () -> System.out.println("Not present"));
Örnek
Şöyle yaparız.
public void check(String name){
  Optional.ofNullable(name)
    .ifPresentOrElse(YourClass::doSomething, YourClass::doMore);
} 
Şu kod ile aynıdır
public void check(String name) {
  if (name != null)
    doSomething(name);
  else 
    doMore();
}
Yanlış Kullanım
Exception fırlatmamalıdır. orElseThrow kullanılabilir
Örnek
Şu kod iyi değil
dao.findExample(id)
  .ifPresentOrElse(this::workWithExample, () -> throw new CustomRuntimeException());
Şöyle yaparız
dao.findExample(id).orElseThrow(ExampleNotFoundException::new);

Hiç yorum yok:

Yorum Gönder