如何从包裹在Mono中的对象内的地图中提取条目?

时间:2019-04-30 15:14:33

标签: project-reactor

反应堆和弹簧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()时,效果很好。

1 个答案:

答案 0 :(得分:0)

如果将mm的声明更改为:

,您的示例将起作用
Mono<Map<String, Integer>> mm = Mono.just(Map.of("a",1,"b",2,"c",3));