解决日常碰到的空指针异常
1. map.get()报空指针异常的话,拿着个参数做处理前一定要判断,或者用getOrDefault方法去避免
当Map集合中有这个key时,就使用这个key值,如果没有就使用默认值defaultValue
public class map_getOrDefault {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("name", "我的");
map.put("age", "24");
map.put("sex", "女");
String name = map.getOrDefault("name", "test");
System.out.println(name);
String address = map.getOrDefault("address", "北京");
System.out.println(address);
}
}
输出结果:
我的
北京
注意使用toString()会有坑报空指针异常

源码中可以看到, 如果map中没有这个key, 则两个条件都不成立,会采纳设置的默认值作为最终值; 如果有这个key,那么两个条件中有一个是true的,这种情况下会将key对应的值作为最终值. 如果 key 对应的值是 null, 那就有可能出现空指针异常的问题了.
2. map.put空指针异常(已解决)
在Java编程中,这次碰到了map的put报了空指针的错误:如下图

为什么会出现这种问题呢,查阅资料才知道map虽然初始化了,但是成员变量默认初始化为null,并没有分配内存,此时对map进行put操作,势必会报空指针异常。
解决办法是对map进行初始化,修改为以下代码即可


浙公网安备 33010602011771号