我有以下lambda表达式,如果bonusScheduleDurationContainers
不为空,则工作正常。如果它是空的,我会得到NoSuchElementException
。我如何在lambda表达式中检查它?
final List<ScheduleDurationContainer> bonusScheduleDurationContainers
= scheduleDurationContainersOfWeek.stream()
.filter(s -> s.getContainerType() == ScheduleIntervalContainerTypeEnum.BONUS)
.collect(Collectors.toList());
final ScheduleDurationContainer bonusScheduleDurationContainer
= bonusScheduleDurationContainers.stream()
.filter(s -> s.getDayOfWeekStartingWithZero() == dayOfWeekTmp)
.findFirst()
.get();
答案 0 :(得分:18)
Stream.findFirst
会返回一个Optional
,由您自行决定是否有值而不是只调用get。
如果可选项为空,则可以使用orElse
方法返回默认值。
答案 1 :(得分:1)