-
Notifications
You must be signed in to change notification settings - Fork 46.1k
建议重写 #2115
Copy link
Copy link
Closed
Description
map() 和 flatMap() 有什么区别的?
1.参数不一样,map 的参数上面看到过,flatMap 的参数是这样
2.flatMap() 参数返回值如果是 null 会抛 NullPointerException,而 map() 返回EMPTY。
这里写的有点浅显了,两个函数的功能不一样,所以参数才有区别,不能拿结果说两个不一样,是因为原因(功能)不一样才有不同的结果(参数)。
Optional<Integer> optionalValue = Optional.of(5);
Optional<String> mappedValue = optionalValue.map(val -> null);
Optional<String> flatMappedValue = optionalValue.flatMap(val -> Optional.ofNullable(null));
System.out.println(mappedValue);
System.out.println(flatMappedValue);
以上代码map和flatMap里面的返回值都是null,输出的结果却是
Optional.empty
Optional.empty
NullPointerException并不是map和flatMap导致的。
这部分建议重写,给的代码示例也不是太好。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels