反应堆和弹簧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()时,效果很好。
答案 0 :(得分:0)
如果将mm
的声明更改为:
Mono<Map<String, Integer>> mm = Mono.just(Map.of("a",1,"b",2,"c",3));