最近使用HashMap时踩了不少坑,故每次都看看源码,加深对出现异常原因的理解。比如最近遇到项目中的putAll方法抛NullPointerException,查看源码得知,这竟是putAll方法的唯一一个异常。如下:
public void putAll(Map<? extends K,? extends V> m)
调用此方法将获得参数m中的所有映射,如果存在key相同的,则被m中的value覆盖。
此方法实现了Map<K,V>的同名方法,重写了AbstractMap<K,V>中的同名方法。
当m为空时,该方法就会抛出NullPointerException。