gpt4 book ai didi

java - 如何在Java 8中访问流的元素,或返回流的一个元素?

转载 作者:行者123 更新时间:2023-11-30 03:33:08 25 4
gpt4 key购买 nike

我有方法:

public Monitor getCurrentMonitor() {
findCurrentMonitor();
return monitors.stream().filter(a -> a.isCurrent());
}

它的目的是找到当前的Monitor(列表中只有一个),并返回它。我将如何在功能上完成此任务,或者在程序上完成此任务会更好吗?

最佳答案

您可以调用findFirst() ,这将返回 Optional<Monitor> ,那么你只需返回这个 Optional 中的值即可实例,或者如果它为空,则抛出异常(正如您所说,列表中有一个当前监视器):

public Monitor getCurrentMonitor() {
return monitors.stream()
.filter(a -> a.isCurrent())
.findFirst()
.orElseThrow(() -> new NoCurrentMonitorException());
}

orElseThrow部分是防止调用 get在空Optional (在这种情况下,最好抛出自定义异常,以明确列表中没有当前监视器实例的意图)。

<小时/>我不确定你的 findCurrentMonitor();是在做。我想你应该删除它,因为流上的过滤基本上就是它的作用;即找到当前的监视器。从纯粹的功能方面来看,您不应该调用此函数 ( findCurrentMonitor(); ),因为它有副作用。

关于java - 如何在Java 8中访问流的元素,或返回流的一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28551496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com