影响最深刻的空指针,List<Map<String,Object>> 循环Map.get()

来源:2-1 如何从根源避免空指针

SuccessorSocialism

2020-09-01

一个List<Map<String,Object>> 循环获取值,然后进行赋值 调用其他方法。

结果get的值不存在 ,造成整个逻辑的不可用。

后面用了data.getOrDefault(),进行赋默认值,然后在接下来的逻辑方法里面判断非这个默认值即可继续往下走


写回答

1回答

张勤一

2020-09-02

鲲鲲你好:

    哈哈哈哈,循环的从 List 中获取 Map 对象(思考下,这里有必要去判断 null 吗),然后,有了 Map 对象之后,再去 get 的时候不存在,得到的是 null,结果抛出了 NPE。

    那么,其实,在 java8 的语法里面,遍历 Map 的方式用 foreach 更好;当然,如果你不是遍历,直接从 Map 里面获取 KV,一定要考虑用 getOrDefault,default 给一个默认的无意义的值,让整体的逻辑更加流畅、好看!


    我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!

2
1
SuccessorSocialism
1024 感谢分享
2020-09-06
共1条回复

Java实操避坑指南 SpringBoot/MySQL/Redis错误详解

掌握业务开发中各种类型的坑,,Java web开发领域通用

466 学习 · 204 问题

查看课程