Java-8 流 - 将子类型列表转换为父类(super class)型列表

标签 java-8

我有以下流:

final List<List<ScheduleContainer>> scheduleIntervalContainerOfCurrentDay = new ArrayList<>(
        unconfirmedScheduleIntervalContainersOfWeeks.stream()
            .sorted(Comparator.comparing(ScheduleIntervalContainer::getStartDate).reversed())
            .filter(s -> s.getStartDate().withTimeAtStartOfDay().isEqual(today.withTimeAtStartOfDay()))
            .collect(Collectors.groupingBy(ScheduleIntervalContainer::getStartDate, LinkedHashMap::new, Collectors.toList())).values());

最后我将从 List 转换类型 List<ScheduleIntervalContainer>List类型 List<ScheduleContainer> (ScheduleIntervalContainer 是 ScheduleContainer 的子类型)。有办法做到这一点吗?

最佳答案

您可以通过指定用于 toList 的类型参数将项目收集到更通用类型的列表中:

Collectors.<ScheduleContainer>toList()

关于Java-8 流 - 将子类型列表转换为父类(super class)型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35741342/

相关文章:

Java 8 map 合并方法

java-8 - 带参数的 Java 8 函数引用

java - 默认方法和静态方法如何在 Java 8 接口(interface)中工作?

java - 我是否可以通过任何方式重写 Integer 和 String 类的 equals/compare 方法?

java - 创建 map ,根据条件从列表中删除重复项

java - 我可以在流式传输时向集合中添加新对象吗?

java-8 - 如何从jdbc结果集中返回java8 Stream

`(a,b) -> a+b` 的 Java8 函数类型

guava - 从java8流创建guava MultiMap的最干净方法

loops - 如何将for循环转换为stream循环