gpt4 book ai didi

list - 迭代一个 optional 整数列表 ifPresent

转载 作者:行者123 更新时间:2023-12-04 01:37:38 27 4
gpt4 key购买 nike

我有一个 optional 整数列表。我希望查看列表是否实际存在,然后将其转换为流。这样做的一种方法是

Optional<List<Integer>> listOfNumbers = ...
if (listOfNumbers.isPresent()) {
listOfNumbers.get().stream();
}

但是,我不希望有那个 if 条件。我搜索并看到了 ifPresent()做同样的事情,但当我做 listOfNumbers.ifPresent(this::get)) ,我收到以下错误:

non-static variable this cannot be referenced from a static context



你能帮我以有效的方式做到这一点吗?这对我来说仍然是新的,所以如果我的理解有任何不正确的地方,请告诉我。

最佳答案

正如评论中所指出的,获得 Stream 的最干净方法是使用 Optional.orElse方法与 Collections.emptyList :

Stream<Integer> stream = listOfNumbers.orElse(Collections.emptyList()).stream();

另一个可能的解决方案是 Optional.map :
Stream<Integer> stream = listOfNumbers.map(List::stream).orElse(Stream.empty());

关于list - 迭代一个 optional 整数列表 ifPresent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43381247/

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