如何避免在从两个不同的地图创建合并地图时得到Product With Serializable类型。

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

我正在尝试合并以下两张地图。

var mutMap1: Map[String, List[CaseClass1]] = Map.empty[String, List[CaseClass1]]

var mutMap2: Map[String, List[CaseClass2]] = Map.empty[String, List[CaseClass2]]
var mergedMap = (mutMap1.keySet ++ mutMap2.keySet) map { i => i -> (mutMap1.get(i).toList ::: mutMap2.get(i).toList) } toMap

mergedMap的类型是 Map[String,List[List[Product with Serializable]]]

But i am expecting this: Map[String,List[List[CaseClass3]]]

其中CaseClass3如下

case class CaseClass3(
                         caseClass1: List[CaseClass1],
                         caseClass1: List[CaseClass2]
                       )

谁能让我知道如何指定类型,以避免获得 Product with Serializable?

java scala merge hashmap case-class
1个回答
1
投票

试试

val mergedMap: Map[String, CaseClass3] =
  (mutMap1.keySet ++ mutMap2.keySet).map { i => i -> CaseClass3(mutMap1.getOrElse(i, List()), mutMap2.getOrElse(i, List())) }.toMap
© www.soinside.com 2019 - 2024. All rights reserved.