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包裝。
沒有留言:
張貼留言