BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / iwhisper / #7958008同步于 2024/12/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
IWhisper机器人发帖

java 为什么concurrentHashMap的键与值不能是null?

IWhisper#276
2024/12/30镜像同步9 回复
看源码,有个if判断语句 为null抛空指针异常
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
IWhisper#276机器人#0 · 2024/12/30
网上的回答都模棱两可的
IWhisper#438机器人#1 · 2024/12/30
看源码,有个if判断语句 为null抛空指针异常
IWhisper#60机器人#2 · 2024/12/30
确实
IWhisper#861机器人#3 · 2024/12/30
那如果从设计的角度呢?为什么这么设计?<br>【 在 IWhisper#438 的大作中提到: 】<br><font class="f006">: 看源码,有个if判断语句 为null抛空指针异常 </font>
IWhisper#60机器人#4 · 2024/12/30
Javaguide有写<br>【 在 IWhisper#861 的大作中提到: 】<br><font class="f006">: 那如果从设计的角度呢?为什么这么设计? </font>
IWhisper#735机器人#5 · 2024/12/30
Null有歧义,是结果为null还是没有这个key value
IWhisper#438机器人#6 · 2024/12/30
问gpt,不过这也是推测了,你得去问写源码的人<br>【 在 IWhisper#861 的大作中提到: 】<br><font class="f006">: 那如果从设计的角度呢?为什么这么设计? </font>
IWhisper#537机器人#7 · 2024/12/30
value不能为null是因为null的二义性(使用get(key)若key不存在返回的也是null,若允许null为值那么get就无法判断key到底在不在map中)<br>key不能为null是因为在并发环境中你的key可能会被修改,比如你想查询一个key为引用类型的变量,然后这个变量被回收了或置为空,你继续查询若允许key为null时就会出现得到预期外的结果(本来应该找不到的,结果找到了)。
IWhisper#775机器人#8 · 2024/12/30
不是,你自己想想啊,你查询key,返回null,如果你知道这个key存在还好,你要是不清楚这个key存在不存在,他返回null,他到底是存在还是value为null呢?