java - 使用 Stream 避免 NoSuchElementException

标签 java java-8 java-stream option-type

我有以下 Stream:

Stream<T> stream = stream();

T result = stream.filter(t -> {
    double x = getX(t);
    double y = getY(t);
    return (x == tx && y == ty);
}).findFirst().get();

return result;

但是,并不总是有结果给我以下错误:

NoSuchElementException: No value present

那么如果没有值,我该如何返回 null

最佳答案

您可以使用 Optional.orElse ,这比检查 isPresent 简单得多:

T result = stream.filter(t -> {
    double x = getX(t);
    double y = getY(t);
    return (x == tx && y == ty);
}).findFirst().orElse(null);

return result;

关于java - 使用 Stream 避免 NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30686215/

相关文章:

java - 连接列表中所有 map 的字符串值

java - 在 Java 8 中使用映射函数时类型转换不起作用

JavaFX 和 FXML 最小化时黑屏

java - 如何在 Json 响应中设置 http header

Java8 Lambda 表达式评估

Java 8 Stream如何使用自定义逻辑合并2个大小不等的列表以选择重复项

java - 我应该尽可能使用并行流吗?

java-8 - 为什么带有副作用的过滤器比基于Spliterator的实现方式更好?

Netbeans 7 如何标记 jdk

java - 编辑文本文件