2016-03-02 3 views
2

У меня есть следующий поток: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). Есть ли способ сделать это?

ответ

4

Вы можете собирать предметы в списки более общего типа, указав параметр типа использовать для toList:

Collectors.<ScheduleContainer>toList()