无法从助焊剂<Object>转换为助焊剂<BOLCompliance>



我在下面的方法中得到这个错误"返回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));
}

routlink . getcomplianceids()返回一个String类型的List,createcompliancerresponse返回一个类型为BOLCompliance的Mono, complancecaller . getcompliancebyid (id))返回一个类型为Compliance的Mono

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

您的

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

应该

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

因为您的返回类型是createComplianceResponseMono<BOLCompliance>,并且您希望BOLCompliance在流中走得更远,而不是Mono对象。在您的示例中,生成的Flux是Flux<Mono<BOLCompliance>>

最新更新