gpt4 book ai didi

java - 为什么在HashMap.keySet()中声明局部变量ks?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:10:52 27 4
gpt4 key购买 nike

<分区>

查看源码java.util.HashMap,看到如下代码:

public Set<K> keySet() {
Set<K> ks;
return (ks = keySet) == null ? (keySet = new KeySet()) : ks;
}

(Windows,Java 版本“1.8.0_111”)

在我的 MacBook 上它看起来像这样:

public Set<K> keySet() {
Set<K> ks = keySet;
if (ks == null) {
ks = new KeySet();
keySet = ks;
}
return ks;
}

(MacOs X Sierra,Java 版本“1.8.0_121”)

为什么两个变体都声明一个局部变量 ks?为什么不这样写:

public Set<K> keySet() {
if (keySet == null) {
keySet = new KeySet();
}
return keySet;
}

public Set<K> keySet() {
return keySet == null ? (keySet = new KeySet()) : keySet;
}

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com