我在下面的方法中得到这个错误"返回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));
因为您的返回类型是createComplianceResponse
的Mono<BOLCompliance>
,并且您希望BOLCompliance
在流中走得更远,而不是Mono
对象。在您的示例中,生成的Flux是Flux<Mono<BOLCompliance>>
。