Java 8 Stream API:在实例上过滤和强制转换

2022-09-02 02:13:32

我有一个对象列表:

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())

答案 2

推荐