gpt4 book ai didi

Java8 : stream findFirst result

转载 作者:太空狗 更新时间:2023-10-29 23:01:46 24 4
gpt4 key购买 nike

我想知道当我知道 100 时,是否有办法在不使用 .orElse() 的情况下消除 findFirst().get() 处的警告% 每次都有结果,所以我从来没有得到 NoSuchElementException

例如让我们看下面的代码:

    List<String> myList = new ArrayList<>();
myList.add("Test");
myList.add("Example");
myList.add("Sth");

String fisrstString = myList.stream().findFirst().get(); // here I surely get "Test"

我不知道其他 IDE 如何处理这个问题,但 IntelliJ 将其视为警告

'Optional.get()' without 'isPresent()'

我想它可能不知道什么时候可以得到 NoSuchElementException,什么时候不能,或者我不知道为什么。我知道有办法解决这个警告(isPresent() check, .orElse(something))但是代码没用,所以我不想使用那些解决方案,因为它们是如此不必要。

您知道我能做什么,或者解释一下 IDE 是如何处理的吗?

最佳答案

嗯,对我来说,最好的方法是使用函数式编程并继续使用可选的。因此,例如,如果您需要将此字符串传递给某些服务,您可以这样做:

String fisrstString = myList.stream().findFirst().get();
service.doSomething(fisrstString);

但这看起来不太好。相反,您可以利用函数式编程的优点,并执行以下操作:

myList.stream().findFirst().ifPresent(service::doSomething);

关于Java8 : stream findFirst result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44458540/

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