Java 8 Stream API:在实例上过滤和强制转换
我有一个对象列表:
List<SomeType> myList;
我想获取此列表中可用的子类型的列表:
List<SomeChildType> myChildList = myList.stream().filter(e -> e instanceof SomeChildType).collect(??????)
我不知道如何收集以获取正确的列表类型。
我有一个对象列表:
List<SomeType> myList;
我想获取此列表中可用的子类型的列表:
List<SomeChildType> myChildList = myList.stream().filter(e -> e instanceof SomeChildType).collect(??????)
我不知道如何收集以获取正确的列表类型。
您需要投射对象:
List<SomeChildType> myChildList = myList.stream()
.filter(SomeChildType.class::isInstance)
.map(SomeChildType.class::cast)
.collect(toList())