如何从包裹在 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));