2016-09-22 75 views
0

我發現自己有時在運行的條件:斯卡拉:如何避免檢查實例和鑄造

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

只是爲了檢查,如果集合有Foo實例和鑄造最終過濾收集。

有沒有更好的方法來做到這一點(假設我不能改變當前的數據結構)?

我試着用:

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

但在運行時,它返回MatchingError當然它正在尋找所有剩餘的情況下(case _ =>)的。

回答

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