Scala中的"未经检查的类型模式"警告?

Mic*_*ael 6 scala compiler-warnings type-erasure

假设我有一张地图m: Map[Any, Int].现在我只想(String, Int)从中获取条目m并创建m1: Map[String, Int]包含这些条目的新地图.

我正在尝试执行以下操作:

val m1: Map[String, Int] = m collect {case e:(String, Int) => e}
Run Code Online (Sandbox Code Playgroud)

它似乎工作但我得到一个警告:非变量类型参数类型模式(String,Int)中的字符串是未选中的,因为它被擦除消除.

我该如何摆脱警告?

vir*_*yes 9

你可能想要:

val m1: Map[String, Int] = m collect {case (k:String, v:Int) => k->v}
Run Code Online (Sandbox Code Playgroud)