【问题标题】:Getting type Mismatch error with List of Maps使用地图列表获取类型不匹配错误
【发布时间】:2016-09-08 15:09:41
【问题描述】:

我有除了字符串和地图列表之外的方法。 我在第二行得到一个错误 // 得到错误为 : 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"))) 

它有效。我如何才能在第一时间工作?

【问题讨论】:

  • val a: List[Map[String,org.json4s.JsonAST.JValue] = List(Map("inner/age" -> 35, "age" -> 27, "name" -> "foo"))

标签: scala json4s


【解决方案1】:

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)

请注意,此代码只能在正确的上下文中工作,因为 Ints 和 Strings 在代码中被视为 org.json4s.JsonAST.JValue

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 2014-11-10
    • 2023-03-06
    • 2013-01-16
    相关资源
    最近更新 更多