網頁

2019/1/12

Java Optional.map() 與 Optional.flapMap()的小差異

Java 8 Optional.map()Optional.flapMap()的小差異如下。

String s = "hello world";

// map
Optional.of(s)
    .map(e -> e.length())
    .ifPresent(System.out::println);

// flapMap
Optional.of(s)
    .flatMap(e -> Optional.ofNullable(e.length()))
    .ifPresent(System.out::println);

傳入map()Function<? super T,? extends U>的回傳值不用Optional包裝;
傳入flapMap()Function<? super T,Optional<U>>的回傳值要用Optional包裝。

沒有留言:

張貼留言