我不是 Scala 专家,但我想避免使用 asInstanceOf 并将其替换为序列的模式匹配。以下截图给了我一个错误 non-variable type argument
val seq : Seq[Any] = getSeq();
val rec = seq match {
case rec: Seq[Record[Key, Value]] => rec
case other => throw new Exception(s"Expected a Seq[Record[Key, Value]]")
}
我有以下带有 asInstanceOf
的代码可以工作,但想替换它:
val values = seq.asInstanceOf[Seq[Record[Key, Vrade]]].map(_.value)
答案 0 :(得分:0)
您可以将元素映射到类型为 Seq[Record[Key, Vrade]] 的新列表。因此,不是匹配整个序列,而是匹配列表中的元素。
应该是这样的:
val values = seq.map {
case x: Record[Key, Vrade]] => Some(x);
case _ => None;
};
然后,如果您将变量作为 List 而不是 og Seq,您可以将其展平,或开始对其进行平面映射