[英]Scala Cast Issues : java.lang.String cannot be cast to scala.runtime.Nothing
我有一個 Map 數組,我想解析並構造一個字符串。 這是我的 Map 的外觀:
outerArray: Array[scala.collection.immutable.Map[String,Nothing]] = Array(Map(day -> 2018-08-04, agg_id -> 427912_1_0_1), Map(day -> 2018-09-08, agg_id -> 427912_1_0_2), Map(day -> 2018-10-20, agg_id -> 427912_1_0_3), Map(day -> 2018-10-24, agg_id -> 427912_1_0_4), Map(day -> 2019-09-04, agg_id -> 427912_1_0_5))
這是我為外部數組中的每個元素形成一個字符串的代碼
outerArray.foreach(x=>{
val agg_id_val=x.getOrElse("agg_id","").toString
val query=x.filterKeys(!_.equals("agg_id"))
.map{case (key, value) => " " +key + "=" +''' +value +'''+ " "}
.mkString(" and ")
println("query"+ query)})
運行此代碼時出現以下錯誤。 我知道這是由於內部 map 中的值,但我該如何處理呢?
java.lang.ClassCastException: java.lang.String cannot be cast to scala.runtime.Nothing$
at $anonfun$1$$anonfun$2.apply(<console>:28)
at $anonfun$1$$anonfun$2.apply(<console>:28)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
at scala.collection.immutable.Map$Map2.foreach(Map.scala:137)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
at scala.collection.AbstractTraversable.map(Traversable.scala:104)
at $anonfun$1.apply(<console>:28)
at $anonfun$1.apply(<console>:26)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
我正在使用 scala 2.11.8
您可能想要Map[String, Any]
,而不是Map[String, Nothing]
(當然,有意義的類型會更好)。 如果你真的有一個Map[String, Nothing]
它不能包含任何值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.