Java 8 Stream API: インスタンスのフィルタリングとキャスト [重複] 質問する

Java 8 Stream API: インスタンスのフィルタリングとキャスト [重複] 質問する

オブジェクトのリストがあります:

List<SomeType> myList;

このリストで利用可能なサブタイプのリストを取得したい:

List<SomeChildType> myChildList = myList.stream().filter(e -> e instanceof SomeChildType).collect(??????)

正しいリストタイプを取得するためにどのように収集すればよいかわかりません。

ベストアンサー1

オブジェクトをキャストする必要があります:

List<SomeChildType> myChildList = myList.stream()
                                        .filter(SomeChildType.class::isInstance)
                                        .map(SomeChildType.class::cast)
                                        .collect(toList())

おすすめ記事