SS'*_*SS' 2 java stream filter java-8 java-stream
不确定这里的语法,lambda表达式和排序的新功能.
itemStream.parallel().filter(Objects::nonNull).forEach(
(item) -> randomMethod(item));
Run Code Online (Sandbox Code Playgroud)
我之前在for循环中所做的是检查null,然后在遇到null项时发出警告
log.warn("Skipping a null item!");
Run Code Online (Sandbox Code Playgroud)
如何使用基于流的方法在遇到空对象(同时仍在过滤时)时进行记录?
你可以使用Stream::peek:
itemStream.parallel()
.peek(item -> { if (item == null) log.warn("Skipping a null item!"); })
.filter(Objects::nonNull)
.forEach(item -> randomMethod(item));
Run Code Online (Sandbox Code Playgroud)
你也可以使用方法参考randomMethod(这里我假设它是一个成员this):
itemStream.parallel()
.peek(item -> { if (item == null) log.warn("Skipping a null item!"); })
.filter(Objects::nonNull)
.forEach(this::randomMethod);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |