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