当前位置: 首页 > news >正文

开发避坑指南(39):Java List全null元素引发的空判断无效处理方案

问题描述

使用java8 stream()函数提取list中的某个元素并做去重处理,发现提取的结果list不为空,且size=1,但是里面的元素都是null,如图所示:
在这里插入图片描述

相关代码

List<String> orderOidList = orderList.stream().map(OrderInfo::getOrderOid).                      collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
if (null != orderOidList && !orderOidList.isEmpty()) {//执行其他逻辑
}

问题分析

由于list中的orderOid字段都是null,if (null != orderOidList && !orderOidList.isEmpty())这样的判断是无效的。需要提取list中的字段时过滤null的字段。或者使用Stream API的allMatch方法可以快速判断列表中所有元素是否为null。

解决办法

(1)过滤null字段。代码如下:

List<String> orderOidList = orderList.stream().map(OrderInfo::getOrderOid).filter(Objects::nonNull).                     collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
if (null != orderOidList && !orderOidList.isEmpty()) {//执行其他逻辑
}

(2)使用Stream API的allMatch方法判断。代码如下:

if (null != orderOidList && orderOidList.stream().allMatch(Objects::nonNull)) {//执行其他逻辑
}
http://www.dtcms.com/a/354287.html

相关文章:

  • 用LightRAG打造智能问答系统:知识图谱与RAG的融合应用实践
  • 如何在升级到S/4HANA后关闭SAP旧系统?
  • 3-4〔OSCP ◈ 研记〕❘ WEB应用攻击▸Burp Suite工具
  • MySQL中的InnoDB
  • pikachu-xss通关(1-8)
  • qt5+mingw64+opencv4.5.2搭建调试环境
  • FOC算法第二节 克拉克变换
  • mybatis-plus实现苍穹外卖项目-分类操作,不定期更新-day2
  • Hadoop(五)
  • AI、人工智能基础: 模型剪枝的概念与实践(PyTorch版)
  • uvloop深度实践:从原理到高性能异步应用实战
  • 死锁产生的条件是什么? 如何进行死锁诊断?
  • 本地部署DeepSeek大模型的基本方法
  • 自定义命令行补全机制的核心工具之compgen
  • web服务组件
  • MII的原理
  • 软件设计师备考-(三)操作系统基本原理
  • leetcode28. 找出字符串中第一个匹配项的下标
  • VR党建工作站-红色教育基地
  • 路由基础(三):静态路由、动态路由、默认路由
  • Linux系统 -- 线程(pthread)核心知识整理
  • 【golang长途旅行第33站】常量------补充知识点
  • 学习游戏制作记录(数据加密以及主菜单和画面优化)8.27
  • 运算电源抑制比(PSRR)测量及设计注意事项
  • 去哪里学AI?2025年AI培训机构推荐!
  • 部署k8s-efk日志收集服务(小白的“升级打怪”成长之路)
  • 数据库:缓冲池和磁盘I/O
  • 让组件“活”起来:使用 `useState` Hook 管理组件状态
  • 【苍穹外卖项目】Day12
  • Android中的SELinux