aay*_*v20 11 lambda list optional java-8 java-stream
我有一个可选的整数列表.我希望看看列表是否实际存在,然后将其转换为流.一种方法是这样做
Optional<List<Integer>> listOfNumbers = ...
if (listOfNumbers.isPresent()) {
listOfNumbers.get().stream();
}
Run Code Online (Sandbox Code Playgroud)
但是,如果有条件,我不希望这样.我搜索并看到它ifPresent()做同样的事情,但当我这样做时listOfNumbers.ifPresent(this::get)),我收到以下错误:
非静态变量,不能从静态上下文引用
能否以有效的方式帮助我做到这一点?这对我来说还是新的,所以如果我的理解有任何不正确的地方,请告诉我.
Zhe*_*lov 19
正如评论中所指出的,获得a的最简洁方法Stream是使用Optional.orElse方法Collections.emptyList:
Stream<Integer> stream = listOfNumbers.orElse(Collections.emptyList()).stream();
Run Code Online (Sandbox Code Playgroud)
另一种可能的解决方案Optional.map:
Stream<Integer> stream = listOfNumbers.map(List::stream).orElse(Stream.empty());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7404 次 |
| 最近记录: |