Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用单函数对通量进行互惠化_Java_Transform_Project Reactor - Fatal编程技术网

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))