网站建设 引导,百度指数数据分析平台,wordpress 自适应插件,怎么做音乐网站Java8中stream操作list时常见的一个错误#xff1a; 排查原因#xff1a;
定位到代码中发现从数据查询是存在数据的 排查stream前对象为null的情况#xff0c;那问题只能出现在toMap这里了
我们需要知道toMap是怎么帮我们封装数据的#xff0c;先搞明白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