使用foldLeft处理类型擦除

时间:2015-12-29 15:44:04

标签: scala type-erasure

我有一个包含字符串和地图混合的列表listOfIds。下面的代码尝试此列表。映射到匹配的字符串和不匹配的字符串。

val (matched, unmatched) =
  listOfIds.foldLeft(List.empty[Map[String, String]], List.empty[String]) {
     case ((matched, unmatched), p) => p match {
       case m:Map[String, String] => (m :: matched, unmatched)
       case s:String => (matched, s :: unmatched)
     }
   }

问题是我遇到了类型擦除问题。我发现我可以使用占位符来填充此类型m:Map[_, _],但这会在以后尝试提取地图值时导致问题。

我不熟悉类型标签,但是快速的研究表明这可能是一个解决方案...在这种情况下我会理解如何解决类型擦除问题。

谢谢!

0 个答案:

没有答案