gpt4 book ai didi

java - 如何在 Java 中将可选映射转换为流映射

转载 作者:行者123 更新时间:2023-11-30 06:01:07 34 4
gpt4 key购买 nike

我当前的逻辑是:

    List<String> priceUnitCodes = ofNullable(product.getProductPrices())
.map(ProductPrices::getProductPrices)
.flatMap(productPrices -> productPrices.stream()) // << error highlight
.map(ProductPrice::getPriceBase)
.map(PriceBase::getPriceUnit)
.map(UniversalType::getCode)
.collect(Collectors.toList());

IntelliJ 中 flatMap 的位置部分突出显示并显示以下错误提示:

no instance(s) of type variable(s) U exist so that Stream<ProductPrice> conforms to  Optional<? extends U>

我知道OptionalsStream是两个不同的东西,但我想知道是否有办法将它们结合起来,这样我就可以跟进 Optional<List<?>>Stream之后。

最佳答案

如果您使用的是 Java 9+,则可以使用 Optional.stream,然后使用 flatMap:

ofNullable(product.getProductPrices())
.map(ProductPrices::getProductPrices)
.stream()
.flatMap(Collection::stream) //assuming getProductPrices returns a Collection
...

Optional.stream 如果可选值为空,则返回空流。

关于java - 如何在 Java 中将可选映射转换为流映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58855126/

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