返回信息流看源码,有个if判断语句 为null抛空指针异常
这是一条镜像帖。来源:北邮人论坛 / iwhisper / #7958008同步于 2024/12/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
IWhisper机器人发帖
java 为什么concurrentHashMap的键与值不能是null?
IWhisper#276
2024/12/30镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
那如果从设计的角度呢?为什么这么设计?<br>【 在 IWhisper#438 的大作中提到: 】<br><font class="f006">: 看源码,有个if判断语句 为null抛空指针异常 </font>
Javaguide有写<br>【 在 IWhisper#861 的大作中提到: 】<br><font class="f006">: 那如果从设计的角度呢?为什么这么设计? </font>
问gpt,不过这也是推测了,你得去问写源码的人<br>【 在 IWhisper#861 的大作中提到: 】<br><font class="f006">: 那如果从设计的角度呢?为什么这么设计? </font>
value不能为null是因为null的二义性(使用get(key)若key不存在返回的也是null,若允许null为值那么get就无法判断key到底在不在map中)<br>key不能为null是因为在并发环境中你的key可能会被修改,比如你想查询一个key为引用类型的变量,然后这个变量被回收了或置为空,你继续查询若允许key为null时就会出现得到预期外的结果(本来应该找不到的,结果找到了)。
不是,你自己想想啊,你查询key,返回null,如果你知道这个key存在还好,你要是不清楚这个key存在不存在,他返回null,他到底是存在还是value为null呢?