斯卡拉新手,繼續努力與Option
相關的代碼。我有一個HashMap構建的Case類實例,它們本身包含具有Case類實例值的散列圖。這是我不清楚如何訪問檢索到的類實例的屬性:斯卡拉嵌套HashMaps,如何訪問Case Class值屬性?
import collection.mutable.HashMap
case class InnerClass(name: String, age: Int)
case class OuterClass(name: String, nestedMap: HashMap[String, InnerClass])
// Load some data...hash maps are mutable
val innerMap = new HashMap[String, InnerClass]()
innerMap += ("aaa" -> InnerClass("xyz", 0))
val outerMap = new HashMap[String, OuterClass]()
outerMap += ("AAA" -> OuterClass("XYZ", innerMap))
// Try to retrieve data
val outerMapTest = outerMap.getOrElse("AAA", None)
val nestedMap = outerMapTest.nestedMap
這將產生error: value nestedMap is not a member of Option[ScalaFiddle.OuterClass]
// Try to retrieve data a different way
val outerMapTest = outerMap.getOrElse("AAA", None)
val nestedMap = outerMapTest.nestedMap
這將產生error: value nestedMap is not a member of Product with Serializable
請我將如何去獲得進入指教到outerMapTest.nestedMap
。我最終還需要從nestedMap
HashMap中獲取值和屬性。
你並不需要檢查是否存在的關鍵和返回無。如果密鑰不存在,HashMap將返回None。請檢查我的答案 –