如何从包裹在 Mono 中的对象内的地图中提取条目?
how do I extract entries from a map inside an object wrapped in a Mono?
reactor 和 spring webflux 的新手,发现范式转变非常困难。
我有一个 Mono<OAuth2User>
它有一个 Map<String, Object> getAttributes();
我想查看地图的内容。
我将其分解为试图在 Mono 中处理地图。
Mono<Map> mm = Mono.just(Map.of("a",1,"b",2,"c",3))
mm.log().map(m -> m.entrySet()).flatMapMany(Flux::fromIterable).map(e -> "key=" + e.getKey() + ",value=" + e.getValue() ).subscribe(System.out::println)
但出现错误:
ERROR: cannot find symbol
symbol: method getKey()
location: variable e of type java.lang.Object
那么为什么它不知道元素的类型是 Map.Entry?
编辑:当我在地图上使用 keySet() 或 values() 时,它起作用了..
如果您将 mm
的声明更改为:
,您的示例将起作用
Mono<Map<String, Integer>> mm = Mono.just(Map.of("a",1,"b",2,"c",3));
reactor 和 spring webflux 的新手,发现范式转变非常困难。
我有一个 Mono<OAuth2User>
它有一个 Map<String, Object> getAttributes();
我想查看地图的内容。
我将其分解为试图在 Mono 中处理地图。
Mono<Map> mm = Mono.just(Map.of("a",1,"b",2,"c",3))
mm.log().map(m -> m.entrySet()).flatMapMany(Flux::fromIterable).map(e -> "key=" + e.getKey() + ",value=" + e.getValue() ).subscribe(System.out::println)
但出现错误:
ERROR: cannot find symbol
symbol: method getKey()
location: variable e of type java.lang.Object
那么为什么它不知道元素的类型是 Map.Entry?
编辑:当我在地图上使用 keySet() 或 values() 时,它起作用了..
如果您将 mm
的声明更改为:
Mono<Map<String, Integer>> mm = Mono.just(Map.of("a",1,"b",2,"c",3));