java – 使用Stream避免NoSuchElementException

前端之家收集整理的这篇文章主要介绍了java – 使用Stream避免NoSuchElementException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下流:
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相关文章