2016-09-22 6 views
0

をキャストしないようにするにはどうすればランニングの状態で、時には自分自身を発見した:スカラ:インスタンスをチェックして、

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

コレクションがFooと最終フィルター処理されたコレクションをキャストのインスタンスを持っている場合だけをチェックします。

もっと良い方法がありますか(現在のデータ構造を変更できないとします)?

私が試した:

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

が、それは残りのすべての例(case _ =>)を探しているコースのよう実行時にはMatchingErrorを返します。

答えて

3
someCollection.collect { case c: Foo => c } 
関連する問題