Java 用单函数对通量进行互惠化
假设我有一个函数:Java 用单函数对通量进行互惠化,java,transform,project-reactor,Java,Transform,Project Reactor,假设我有一个函数: private Function<Mono<Bar>, Mono<Bar>> changeFooField() { return barMono -> barMono.map(bar -> { bar.setFoo("hello"); return bar; }); } 对我来说,这似乎是错误的,因为我正在使用Mono.just(
private Function<Mono<Bar>, Mono<Bar>> changeFooField() {
return barMono -> barMono.map(bar -> {
bar.setFoo("hello");
return bar;
});
}
对我来说,这似乎是错误的,因为我正在使用Mono.just()重新包装对象
然后我还可以使用一个函数,返回一个Mono,如下所示:
private Mono<Bar> changeFooField(Bar bar) {
return Mono.just(bar).map(bar1 -> {
bar1.setFoo("hello");
return bar1;
});
}
我测试了两者的执行时间,它们是相同的。
但是,当我将签名更改为函数并进行转换时,它会稍微快一点。但我将来将失去在单元素上应用转换的能力。
我希望我的问题有道理,如果我误解了什么,请告诉我
Flux.fromIterable(barList)
.flatMap(bar -> Mono.just(bar).transform(changeFooField()))
private Mono<Bar> changeFooField(Bar bar) {
return Mono.just(bar).map(bar1 -> {
bar1.setFoo("hello");
return bar1;
});
}
Flux.fromIterable(barList).flatMap(bar -> changeFooField(bar))