読者です 読者をやめる 読者になる 読者になる

Optional のifPresent の否定形

Java8 Optional には、ifPresent はあるけれどこれの否定系=NULL の場合、コンシューマ(Consumer)呼び出すものがない。
やはり欲しい。。

でも、こんな方法がある、Optional map 関数で値が存在する場合を、Runnable に変換する方法で再度、Optional にして、
orElse で NULLの場合の処理を Runnable で書く方法である。。

Optional<Item> item;
 // item に、何等かの処理でインスタンスを取得する

item.<Runnable>map(e->()->{ System.out.println("item is not NULL"); })
.orElse(()->{ System.out.println("item is NULL"); })
.run();

思わず、唸ってしまった。。。