Java stream流toMap使用过程中空指针问题

Java8中stream操作list时常见的一个错误:

排查原因:

定位到代码中发现从数据查询是存在数据的

排查stream前对象为null的情况,那问题只能出现在toMap这里了

我们需要知道toMap是怎么帮我们封装数据的,先搞明白toMap的原理,点击源码可以看到他并不是通过map中的put方法封装数据,而是使用的merge,那么merge又是个什么东西呢???

接着往下看,看到这先别着急研究,源码上面都有相关注释

查看当前方法上面的注释信息,在注释这里看到一个关键的词NullPointerException,这不就是我们出现的问题吗?往后看后面的解释,在注释就明确说了,key值和value值都不能为null

最后我们只需去数据库验证当前查询出的数据是否存在为null的情况

通过对应sql,从数据库查询结果看有条数据值为null,因此在toMap的时候报错

解决方式:

1、如果这条数据是垃圾数据,直接删掉就好了

2、在使用toMap前过滤数据,可以使用stream的filter把空值过滤掉,或者使用removeIf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/217984.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用在半导体CST材料搬运AGV小车的RFID

RFID(RadioFrequencyIdentification),又称无线射频识别技术,可通过射频信号进行非接触式的识别目标,近些年来被广泛应用在半导体制造业中,用于半导体行业的晶圆存储柜、电子货架、硅晶片清洗、半导体天车等…

STM32——超声波传感器

需求: 使用超声波测距,当手离传感器距离小于 5cm 时, LED1 点亮,否则保持不亮状态 接线: 定时器配置: 使用 TIM2 ,只用作计数功能,不用作定时。 将 PSC 配置为 71 ,…

基于K-means与CNN的遥感影像分类方法

基于K-means与CNN的遥感影像分类 一、引言 1.研究背景 航天遥感技术是一种通过卫星对地观测获取遥感图像信息数据的技术,这些图像数据在各领域都发挥着不可或缺的作用。遥感图像分类主要是根据地面物体电磁波辐射在遥感图像上的特征,判断识别地面物体的属…

推荐算法:HNSW【推荐出与用户搜索的类似的/用户感兴趣的商品】

HNSW算法概述 HNSW(Hierarchical Navigable Small Word)算法算是目前推荐领域里面常用的ANN(Approximate Nearest Neighbor)算法了。其目的就是在极大量的候选集当中如何快速地找到一个query最近邻的k个元素。 要找到一个query的…

【1.计算机组成与体系结构】浮点数的表示

目录 1.浮点数的表示2.运算过程3.特点 1.浮点数的表示 N尾数*基数(指数/也称为阶码) 例如:1.25x105 ; 1.255x103 2.运算过程 对阶>尾数计算>结果格式化 3.特点 1、一般尾数用补码,阶码用移码 2、阶码的位数决定数的表示范围,位数越…

Spring Boot 3 整合 Mybatis-Plus 动态数据源实现多数据源切换

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

什么是循环依赖,如何解决

目录 什么是循环依赖? 循环依赖的原因: 如何解决循环依赖问题? 最佳实践和注意事项: 结论: 当在使用 Spring Boot 进行开发时,循环依赖(Circular Dependency)可能会成为一个常见…

广东省工业和信息化厅工业互联网处一行莅临科东软件考察调研

近日,广东省工业和信息化厅工业互联网处副处长郑华、广东省科学院智能制造研究所副所长曹永军等一行领导、专家莅临科东软件,就聚焦工业数字化转型,助推新型工业化高质量发展进行考察调研。 科东软件陪同郑华副处长一行参观科东软件展厅&…

学习笔记——GDB调试器

感谢B站up主 xiaobing1016 的学习视频:基于VSCode和CMake实现C/C开发 | Linux篇_哔哩哔哩_bilibili

Redis缓存异常问题,常用解决方案总结

前言 Redis缓存异常问题分别是:1.缓存雪崩。2.缓存预热。3.缓存穿透。4.缓存降级。5.缓存击穿,以 及对应Redis缓存异常问题解决方案。 1.缓存雪崩 1.1、什么是缓存雪崩 如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有…

Appium 自动化测试 —— Appium的环境搭建与设置流程!

1、Appium 环境搭建: 学习 appium 最大的难处之一在于环境的安装,安装流程比较繁琐,安装的工具和步骤也较多,以下是基于 Windows 系统下的 Android 手机端的安装流程。就像我们在用 Selenium 进行 web 自动化测试的时候一样&…

Python键鼠控制之PyAutoGUI方法

前言 PyAutoGUI 是一个 Python 库,用于在桌面应用程序中自动化鼠标和键盘操作。它提供了一组简单而强大的方法,使得开发者可以编写脚本来模拟用户的鼠标点击、键盘输入以及屏幕截图等操作。PyAutoGUI 可以用于自动化重复性任务、测试 GUI 应用程序、创建…

如何通过3D人脸扫描设备制作一个3D超写实虚拟人?

随着虚拟技术的快速发展,现如今的虚拟人逐渐逼真,比二次元虚拟偶像更接近真人形象的3D超写实虚拟人,拥有着更逼真的面部表情,更完美地融入于虚实画面。 随着3D人脸扫描设备不断发展,大大降低了高难度的3D超写实虚拟人…

Django 模型操作(六)

Django通过Model操作数据库, 不管你数据库的类型是MySql或者Sqlite, Django自动帮你生成相应数据库类型的SQL语句,所以不需要关注SQL语句和类型,对数据的操作Django帮我们自动完成。只要会写Model就可以了。 django使用对象关系映射 (Object Relational Mapping, 简称ORM)框…

FPGA UltraScale GTY 全网最细讲解,aurora 8b/10b编解码,HDMI视频传输,提供vivado工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、详细设计方案设计框图视频源选择ADV7611解码芯片配置及采集动态彩条视频数据组包UltraScale GTY 全网最细解读UltraScale GTY 基本结构UltraScale GTY 参考时钟的选择和分配UltraScale GTY 发送和接收处理流程Ultr…

Datawhale聪明办法学Python(task2Getting Started)

一、课程基本结构 课程开源地址:课程简介 - 聪明办法学 Python 第二版 章节结构: Chapter 0 安装 InstallationChapter 1 启航 Getting StartedChapter 2 数据类型和操作 Data Types and OperatorsChapter 3 变量与函数 Variables and FunctionsChapte…

微积分-三角函数

三角函数 在处理微积分问题时,我们不可避免的会遇到三角函数。学会三角函数对于微积分是非常重要的。 基本知识 学习三角函数我们需要先学习一些基本知识。 首先要学习的是弧度的概念。弧度是一种角的度量单位,用于测量角的大小。它是根据角所对的弧长…

羊大师解答,羊奶的中医奇妙之处

羊奶素有“润肺之宝”之称,中医学认为它有着独特的作用和价值。羊奶不仅可以滋润肺部,还能保护肺脏免受外界侵害。在中医理论中,肺为人体之“金”,意味着肺具有极其重要的地位。正常肺气血充足,可以维持人体的正常生理…

Linux --绘制地图投影出现报错:无法成功下载地图背景数据

Linux --绘制地图投影出现报错:无法成功下载地图背景数据 主要原因是由于使用学院集群,该集群无法连接外网,在使用cartopy绘制地图投影时,导致无法成功加载地图背景数据解决方法也很简单,自己手动下载所需要的地形数据…

华清远见嵌入式学习——QT——作业4

作业要求&#xff1a; 代码运行效果图&#xff1a; 代码&#xff1a; 头文件&#xff1a; #ifndef ALARMCLOCK_H #define ALARMCLOCK_H#include <QWidget> #include <QTimerEvent> #include <QTimer> #include <QTime> #include <QTextToSpeech&g…