<分区>
我有一个对象列表:
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())
关于Java 8 Stream API : Filter on instance, 和 cast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34879086/