Loo*_*oom 1 casting scala descendant scala-collections
我有一个 class Foo extends Bar
和一个List
或其他基类集合:
val bars: Iterable[Bar]
Run Code Online (Sandbox Code Playgroud)
我需要Foo
从集合中提取所有元素。以下是代码:
val fooes: Iterable[Foo] = bars
.filter(x => Try(x.isInstanceOf[Foo]).isSuccess))
.map(_.isInstanceOf[Foo])
Run Code Online (Sandbox Code Playgroud)
有更简洁的方法吗?
val fooes: Iterable[Foo] = bars.collect{case foo:Foo => foo}
Run Code Online (Sandbox Code Playgroud)
该.collect()
方法采用偏函数作为其参数。在这种情况下,函数仅针对Foo
类型定义。所有其他人都被忽略。
归档时间: |
|
查看次数: |
81 次 |
最近记录: |