我有一个方法,除了一个字符串和Map的List。 我在第二行收到错误 //得到错误:类型不匹配; found:List [scala.collection.immutable.Map [String,Any]] required:List [Map [String,org.json4s.JValue]](扩展为)List [Map [String,org.json4s.JsonAST.JValue ] :
val a = List(Map("inner/age" -> 35, "age" -> 27, "name" -> "foo"))
val r = jsonFieldUpdater(json, a)
如果我这样做
val r = jsonFieldUpdater(json, List(Map("inner/age" -> 35, "age" -> 27, "name" -> "foo")))
它有效。我怎么能在第一个工作?
答案 0 :(得分:2)
Scala类型推断推断Map("a" -> 1, "b" -> "foo")
为Map[String, Any]
为Int
的常见超类型,String
为Any
使用类似
的显式类型注释引导Scala编译器val a: List[Map[String,org.json4s.JsonAST.JValue] = List(Map("inner/age" -> 35, "age" -> 27, "name" -> "foo"))
val r = jsonFieldUpdater(json, a)
请注意,此代码仅适用于正确的上下文,因为Ints和字符串在代码中被视为org.json4s.JsonAST.JValue