不确定这里的语法,新的 lambda 表达式和排序。
itemStream.parallel().filter(Objects::nonNull).forEach(
(item) -> randomMethod(item));
我之前在 for 循环中的内容是检查 null,然后在遇到 null 项时发出警告
log.warn("Skipping a null item!");
如何使用基于流的方法在遇到空对象(同时仍在过滤)时记录?
最佳答案
你可以使用 Stream::peek
:
itemStream.parallel()
.peek(item -> { if (item == null) log.warn("Skipping a null item!"); })
.filter(Objects::nonNull)
.forEach(item -> randomMethod(item));
您也可以使用 randomMethod
的方法引用(这里我假设它是 this
的成员):
itemStream.parallel()
.peek(item -> { if (item == null) log.warn("Skipping a null item!"); })
.filter(Objects::nonNull)
.forEach(this::randomMethod);
关于java - 在并行流中遇到空对象时添加日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51505884/