疑問
Optional.flatMap()は再帰的かどうか(2段以上Optionalがネストされた場合に一番内側の値を取得するか)
結論
再帰的でない。
Optional.flatMap()とは
Optionalのマップの結果がOptionalのとき、その中身を取り出してくれるメソッド
Optional<String> o = Optional.of("a"); Optional<Integer> p = o.flatMap(a -> Optional.of(3)); p.ifPresent(i -> System.out.println(i)); // 3
OptionalにさらにOptionalをネストしてみる
Optional<String> o = Optional.of("a"); Optional<Optional<Integer>> q = o.flatMap(a -> Optional.of(Optional.of(5))); Optional<Integer> r = q.flatMap(Function.identity());