Scala:如何避免检查实例和转换

时间:2016-09-22 13:56:50

标签: scala

我发现自己有时处于跑步的状态:

someCollection.filter(_.isInstanceOf[Foo]).asInstanceOf[List[Foo]]

只是检查集合是否具有Foo的实例并投射最终过滤的集合。

有没有更好的方法(假设我无法更改当前的数据结构)?

我尝试过:

someCollection.map(case c: Foo => c)

但在运行时它会返回MatchingError,因为它正在寻找所有剩余的案例(case _ =>)。

1 个答案:

答案 0 :(得分:3)

someCollection.collect { case c: Foo => c }