您可以应用另一个
filter以仅保留
ScheduleIntervalContainer实例,并添加一个
map将为您节省以后的转换:
scheduleIntervalContainers.stream() .filter(sc -> sc instanceof ScheduleIntervalContainer) .map (sc -> (ScheduleIntervalContainer) sc) .filter(sic -> sic.getStartTime() != sic.getEndTime()) .collect(Collectors.toList());
或者,正如Holger所说,如果您喜欢那种样式,可以用方法引用替换lambda表达式:
scheduleIntervalContainers.stream() .filter(ScheduleIntervalContainer.class::isInstance) .map (ScheduleIntervalContainer.class::cast) .filter(sic -> sic.getStartTime() != sic.getEndTime()) .collect(Collectors.toList());



