gpt4 book ai didi

java - Optional.flatMap() 和 Stream.flatMap() 之间有什么区别

转载 作者:行者123 更新时间:2023-12-02 02:04:17 26 4
gpt4 key购买 nike

Optional.flatMap() 和 Stream.flatMap() 有什么区别。

流上正确的平面 map :

    List<ObjectDTO> collect = types.stream()
.flatMap(a -> client.getSthById(new URI(a)).stream())
.collect(Collectors.toList());

在可选上使用 flatMap 时出现异常:

        List<ObjectDTO> collect2 = client.getSthByObj(obje.get(), null).getBrowse()
.flatMap(uri -> client.getSthById(uri).stream())
.collect(Collectors.toList());

为什么我不能以同样的方式使用它?

最佳答案

OptionalStream 是两种不同的野兽,用于不同的目的。

Optional 是一个包装器,它保存可以是或不是“存在”(null)的结果,并提供了处理该结果的方法这两个条件(存在或不存在)。

flatMap() 操作是应用于Optional 包装器中保存的值的操作。该操作必须返回一个 Optional 结果:

Optional<String> s = Optional.of("test input");
s.flatMap( input -> Optional.of(input));

Stream 的 flatMap() 可以帮助您获取和处理列表元素的嵌套元素。

<小时/>

补充阅读

关于java - Optional.flatMap() 和 Stream.flatMap() 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51040929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com