lambda - java 8流-如果没有找到就处理

标签 lambda java-8 java-stream

如果未找到任何内容,则以下流管道不起作用,在这种情况下 .findFirst()抛出一个 NPE。

我怎样才能防止这种情况?

scheduleDurationContainers.stream()
        .filter(s -> s.getContainerType() == ScheduleIntervalContainerTypeEnum.BONUS).findFirst().get()

最佳答案

您可以更换 get()orElse(someDefault) , 如果 findFirst 返回的 Optional 将返回一些默认值是空的。或者您可以使用 orElseThrow(execptionSupplier)如果你想在 findFirst 时抛出一些特定的异常没有找到任何东西。

关于lambda - java 8流-如果没有找到就处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36470643/

相关文章:

lambda F# : getting minimum value from list regardless if input is string or int

java - 从可空列表创建 Java 8 流

java - 将同一列表上的嵌套 for 循环移植到 Java Stream

Android IN Java 8 java.time

java - 使用 Collectors.summingInt 时如何获取自定义类型而不是 Integer?

java - 如何仅在java中使用lambda按升序和降序对整数数组进行排序

java - 如何减少列表以使用 Java 函数式 API 进行映射

JavaFX用lambda实现call方法的回调

c++ - 在类构造函数中调用命名 lambda 与调用实际私有(private)函数的优点

C#:Dictionary<String,String> 到 Dictionary<String, Dictionary<String,String>> 的转换