在并行流中遇到空对象时添加日志

不确定这里的语法,对 lambda 表达式和排序不熟悉。

            itemStream.parallel().filter(Objects::nonNull).forEach( 
                (item) -> randomMethod(item));

我之前在 for 循环中所做的是检查 null,然后在遇到 null 项时发出警告

                    log.warn("Skipping a null item!");

如何使用基于流的方法在遇到空对象(同时仍在过滤)时进行记录?


阿晨1998
浏览 195回答 3
3回答

潇潇雨雨

随着.filter(Objects::nonNull)您过滤掉所有null元素并只保留非空元素,这意味着forEach您不会收到任何空元素,不用介意记录它。相反,你想要:itemStream.parallel()          .forEach(item -> {                if(Objects.isNull(item)) { ... } else { ... }; // or if(item == null) ...          });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java