【发布时间】:2020-01-25 05:11:14
【问题描述】:
这是一个关于哪种风格更通用或更优雅的一般编码风格问题。
在阅读 Java 集合源代码时,我发现第一种样式比第二种样式更频繁。任何人都可以对此进行一些解释/推理吗?恕我直言,第二种风格比第一种更简洁,但实际上,第一种风格应该以某种方式更优雅,我无法争辩。
- 创建局部变量。
private Set<K> keySet;
public Set<K> keySet() {
Set<K> ks = keySet;
if (ks == null) {
ks = new KeySet();
keySet = ks;
}
return ks;
}
- 对类成员变量进行操作。
public Set<K> keySet() {
if (keySet == null) {
keySet = new KeySet();
}
return keySet;
}
【问题讨论】:
-
你在看哪个版本的源代码?我只能找到
return (ks = keySet) == null ? (keySet = new KeySet()) : ks;。没有第二次分配给ks。 -
源代码的版本无关紧要。对于你提到的源代码,为什么不写成:
if(keySet == null) keySet = new KeySet(); return keySet; -
@lucas 源代码的版本确实如果你不能产生一个实际上包含你声称它包含的源代码的版本。
标签: java android coding-style