如何处理哈希中的“任何”类型?

时间:2016-08-16 21:02:58

标签: scala hashmap

在我的哈希

val envMap = collection.mutable.HashMap[String,Any]()

我有另一个哈希值,它是一个哈希数组

val servicesArray = scala.collection.mutable.ListBuffer[scala.collection.mutable.HashMap[String,Any]]()
envMap += "services" -> servicesArray

我正试图从envMap进入servicesArray

envMap.get("services").get.append(servicesMap)

但是我收到了这个错误     错误:值append不是Any

的成员

我应该显式转换envMap.get(“services”)。获取一个列表以便我可以附加到它,还是有更好的方法来处理它?<​​/ p>

当前回报值:

Any = ListBuffer(Map(One -> 1, Two -> ii))

我想要的是什么:

scala.collection.mutable.ListBuffer[scala.collection.mutable.HashMap[String,Any]] = ListBuffer(Map(One -> 1, Two -> ii))

1 个答案:

答案 0 :(得分:0)

我想你应该声明这个:

val envMap = collection.mutable.HashMap[String,ListBuffer[scala.collection.mutable.HashMap[String,Any]]]()

正如OP提到的,并非所有值都是List,那么你可以这样做:

envMap.get("services").get match {
  case s:ListBuffer[[scala.collection.mutable.HashMap[String,Any]]] => s.append(serviceMap)
  case _: =>  // Or something else
}

您还可以将"services"抽象出来,以便它对所有密钥都有用。