Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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_Spring_Rx Java_Reactive - Fatal编程技术网

Java 我们希望合并字段值​;结果值为​;将结果生成为地图

Java 我们希望合并字段值​;结果值为​;将结果生成为地图,java,spring,rx-java,reactive,Java,Spring,Rx Java,Reactive,我们希望合并字段值​​使用结果值​​将结果生成为地图。 当结果包含null时会出现一个问题。我想将null更改为“”。 我不确定是不是错了。我想知道该怎么办。请我要感谢那些首先给我答案的人 Set<Object> fields = new HashSet<>(); fields.add("id"); fields.add("name"); // this is null value Mono<List<Object>> result = redis

我们希望合并字段值​​使用结果值​​将结果生成为地图。 当结果包含null时会出现一个问题。我想将null更改为“”。 我不确定是不是错了。我想知道该怎么办。请我要感谢那些首先给我答案的人

Set<Object> fields = new HashSet<>();
fields.add("id");
fields.add("name"); // this is null value
Mono<List<Object>> result = redisRT.opsForHash().multiGet("key:abc", fields);
Mono<Map<Object, Object>> mapMono = result.flatMapMany(Flux::fromIterable)
        .zipWith(Flux.fromIterable(fields))
        .collectMap(Tuple2::getT2, Tuple2::getT1, TreeMap::new);
mapMono.subscribe(System.out::println);

要将结果转换为
字符串
,我建议使用空友好型:


在这种情况下,如果
myObject
为空,您将得到

数据如下:字段=[“id”,“name”]/result=[“1”,空]在fromIterable或flatMapMany中的源后面,当存在空元素时,似乎会引发异常。我的猜测是如何使用defaultIfEmpty或switchIfEmpty以及如何使用OneRorResume,但我不知道该走到哪里。帮助我。或者你可以在调用上述方法之前尝试更改null。但我找不到一个好地方开始编辑。
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.NullPointerException: The iterator returned a null value
Caused by: java.lang.NullPointerException: The iterator returned a null value
    at java.util.Objects.requireNonNull(Objects.java:228)
    at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:230)
    at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:201)
    at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribeInner(MonoFlatMapMany.java:143)
    at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onSubscribe(MonoFlatMapMany.java:237)
    at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)
    at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)
....
Objects.toString(myObject,"")