log

日記です

java8でOptionをたくさん扱うには?

optionがたくさんあるときって、どういう風にやってるのかな?
scalaだとfor式、haskellだとdoとかが答えなのかなと思い。
java8は・・・とりあえずflatMapのネスト?

// flatMap
Optional<Integer> maybeA = Optional.of(1);
Optional<Integer> maybeB = Optional.of(2);
Optional<Integer> maybeC = Optional.of(3);

System.out.println(
  maybeA.flatMap(a ->
    maybeB.flatMap(b ->
      maybeC.map(c -> a + b + c)
    )
  )
);