使用流将一种地图类型转换为另一种地图类型?

问题描述 投票:0回答:1

我正在尝试用流将

Map<String, List<A>>
转换为
Map<String, List<B>>
。我有一个将 A 变成 B 的函数,即
B.fromA()

此代码不起作用:

Map<String, List<A>> aMap = some map

final Map<String, List<B>> bMap =
    aMap.keySet().stream()
        .collect(Collectors.toMap(aKey -> aKey,
            aKey -> aMap.get(aKey).stream()
                                  .map(B::fromA)
                                  .collect(Collectors.toList())));

我刚刚从 IDE 中收到以下错误:

所需类型:地图 提供:地图 不存在类型变量 T 的实例,因此 List 符合 B 推断变量 U 具有不兼容的边界:等式约束:B 下限:List

正确的做法是什么?

java dictionary java-stream
1个回答
0
投票

@Turing85 是对的。我错误地认为我在继承代码时错误地编辑了代码,但我试图将

Map<String, B>
分配给
Map<String, List<B>>
。直到现在我才注意到我在原始代码中也这样做了。

© www.soinside.com 2019 - 2024. All rights reserved.