1)あなたはMap[A, B]
にAny
をキャストすることができます。
例えば、以下は、あの)関数に
scala> def processSomething(mapping: Map[String, Any]) = println(mapping.keys)
processSomething: (mapping: Map[String,Any])Unit
scala> processSomething(mapping("key1").asInstanceOf[Map[String, Any]])
Set(key1.1)
2を通過そしてAny
Map[A, B]
からscala> mapping("key1").asInstanceOf[Map[String, Any]]
res3: Map[String,Any] = Map(key1.1 -> value1)
をキャストするString to another Map
scala> val mapping : Map[String, Any] = Map("key1" -> Map ("key1.1" -> "value1"), "key2" -> Map("key1.2" -> 100))
mapping: Map[String,Any] = Map(key1 -> Map(key1.1 -> value1), key2 -> Map(key1.2 -> 100))
scala> mapping("key1")
res1: Any = Map(key1.1 -> value1)
のMap
ありますあなたの道はmainMap("key")
の結果と一致します。
このようにして、結果が何らかの理由でMap
ではない場合に対応できます。 (はキャストで、それはクラスキャスト例外をスロー。)のみサイドノートとして
mapping("key1") match {
case valueMap : Map[String, Any] => processSomething(valueMap)
case _ => println("key1 is not Map")
}
以下
例:あなたは地図[文字列、任意]を持つべきではありません。あなたがそれを避けることができる場合は、努力をしてください – pedrorijo91
彼はできなかった前の質問について。それはインバウンドデータです。 – Zernike