有人能告诉我为什么,如下所示,隐式转换在简单地创建 KeyVal 对象时有效,但在 Map 中创建 KeyVal 的键时不起作用。
谢谢你。
object o {
case class KeyVal(i: Int)
object KeyVal {
implicit def strToKeyVal(s:String) = KeyVal(s.toInt)
}
}
import o._
val x : KeyVal = "1" // Works fine to create a KeyVal
val x : Map[KeyVal, String] = Map("1" -> "One") // Type Mismatch: found (String, String), wants (KeyVal, String)