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

Getting type Mismatch error with List of Maps

我有一个方法应该排除字符串和地图列表。 我在第二行收到一个错误 // get error as : type mismatch;找到:List[scala.collection.immutable.Map[String,Any]] 需要: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"))) 

有效。我怎样才能在第一个工作?

Scala 类型推断已将 Map("a" -> 1, "b" -> "foo") 推断为 Map[String, Any] 作为 IntString 的普通超类型是 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)

请注意,此代码将仅在适当的上下文中工作,因为整数和字符串在代码中被视为 org.json4s.JsonAST.JValue