代码:
结果:
上面的代码正常,下面attributeData的value值为null
结论:
map的put()方法的返回值为oldValue(oldValue可能为null)
补充:
java.util.HashSet#add 利用map.put()来使用
tips:
Map.getOrDefault()方法没有值则返回默认值(第二个参数)
Map.computeIfAbsent()方法没有值则返回默认值(第二个参数),同时塞入map中
bug产生原因:
忽略了put的value值是计算出来的返回值。就像无参构造一样。
无参构造表面上并无返回值,这是java的一种约定,但是new 类名()创建对象的时候会返回一个地址值。实际上java自身默认有处理构造方法的返回值