【问题标题】:Cannot convert from Flux<Object> to Flux<BOLCompliance>无法从 Flux<Object> 转换为 Flux<BOLCompliance>
【发布时间】:2021-10-19 23:03:16
【问题描述】:

我在下面的方法中遇到了这个错误 "返回 Mono.justOrEmpty(routeLink.getComplianceIds())"

   private Flux<BOLCompliance> getComplienceRouteLink(BOLRouteLink routeLink, BillOfLadingResponse bol) {
        return Mono.justOrEmpty(routeLink.getComplianceIds())
            .flatMapMany(Flux::fromIterable)
            .flatMap(id -> complianceCaller.getComplianceById(id))
            .map(compliance -> createComplianceResponse(compliance, bol));
    }

routeLink.getComplianceIds() 返回一个 String 类型的 List, createComplianceResponse 返回 BOLCompliance 类型的 Mono 和 complianceCaller.getComplianceById(id)) 返回 Compliance 类型的 Mono

public Mono<Compliance> getComplianceById(String complianceID);
private Mono<BOLCompliance> createComplianceResponse(Compliance compliance, BillOfLadingResponse bol);

【问题讨论】:

    标签: reactive-programming spring-webflux project-reactor


    【解决方案1】:

    你的

    .map(compliance -> createComplianceResponse(compliance, bol));
    

    应该是

    .flatMap(compliance -> createComplianceResponse(compliance, bol));
    

    由于您的返回类型是createComplianceResponse 的Mono&lt;BOLCompliance&gt;,并且您希望BOLCompliance 更进一步,而不是Mono 对象。在您的示例中,生成的 Flux 为 Flux&lt;Mono&lt;BOLCompliance&gt;&gt;。

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 1970-01-01
      • 2021-02-06
      • 2020-10-04
      • 2021-12-02
      • 2020-09-29
      • 2021-05-04
      • 1970-01-01
      • 2017-12-27
      相关资源
      最近更新 更多