Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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
rxjava:flatmap和map的区别_Java_Rx Java - Fatal编程技术网

rxjava:flatmap和map的区别

rxjava:flatmap和map的区别,java,rx-java,Java,Rx Java,我想知道这两种方法之间的行为是否有任何差异,或者只是风格问题: private Single<JsonObject> foo() { return Single.just(new JsonObject()).flatMap(next -> Single.just(next)); } private Single<JsonObject> bar() { return Single.just(new JsonObject()).map(next -

我想知道这两种方法之间的行为是否有任何差异,或者只是风格问题:

private Single<JsonObject> foo() {
     return Single.just(new JsonObject()).flatMap(next -> Single.just(next));
}

private Single<JsonObject> bar() {
     return Single.just(new JsonObject()).map(next -> next);
}
private Single foo(){
返回Single.just(newjsonobject()).flatMap(next->Single.just(next));
}
私人单杠(){
返回Single.just(newjsonobject()).map(下一步->下一步);
}

行为上没有区别,因为两者都是无意义的操作。第一个简单地重复将对象包装成一个
单个
,而第二个将其映射到自身。你也没有理由这样做


阅读“flatMap()”和“map()”:第一个将每个值转换为不同值的可观察值,第二个将每个值转换为不同值。

您可以为自己表示一个flatMap操作符,就像另两个操作符mapmerge的序列一样

Map将源项转换为可观察项,该项根据Map中的函数发出值。 此时,合并将有助于将每个新观察到的项目(而不是源项目)放在一起

那本书上有一幅很好的插图

为了简化此代码,引入了flatMap操作符


Ok的可能重复谢谢,我知道这些方法是毫无意义的,这就是示例!