影响最深刻的空指针,List<Map<String,Object>> 循环Map.get()
来源:2-1 如何从根源避免空指针
SuccessorSocialism
2020-09-01
一个List<Map<String,Object>> 循环获取值,然后进行赋值 调用其他方法。
结果get的值不存在 ,造成整个逻辑的不可用。
后面用了data.getOrDefault(),进行赋默认值,然后在接下来的逻辑方法里面判断非这个默认值即可继续往下走
写回答
1回答
-
鲲鲲你好:
哈哈哈哈,循环的从 List 中获取 Map 对象(思考下,这里有必要去判断 null 吗),然后,有了 Map 对象之后,再去 get 的时候不存在,得到的是 null,结果抛出了 NPE。
那么,其实,在 java8 的语法里面,遍历 Map 的方式用 foreach 更好;当然,如果你不是遍历,直接从 Map 里面获取 KV,一定要考虑用 getOrDefault,default 给一个默认的无意义的值,让整体的逻辑更加流畅、好看!
我是勤一,致力于将这门课程的问答区打造为 Java 知识体系知识库,Java 知识体系 BBS!共同建造、维护这门课程,我需要每一个你!
212020-09-06
相似问题