使用地图列表获取类型不匹配错误

时间:2016-09-08 15:09:41

标签: scala json4s

我有一个方法,除了一个字符串和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"))) 

它有效。我怎么能在第一个工作?

1 个答案:

答案 0 :(得分:2)

Scala类型推断推断Map("a" -> 1, "b" -> "foo")Map[String, Any]Int的常见超类型,StringAny

使用类似

的显式类型注释引导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