使用 Stream 避免 NoSuchElementException

Avoid NoSuchElementException with Stream(使用 Stream 避免 NoSuchElementException)

本文介绍了使用 Stream 避免 NoSuchElementException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下 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;

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

However, there is not always a result which gives me the following error:

NoSuchElementException:不存在值

NoSuchElementException: No value present

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

So how can I return a null if there is no value present?

推荐答案

你可以使用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;

这篇关于使用 Stream 避免 NoSuchElementException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:使用 Stream 避免 NoSuchElementException

基础教程推荐