这是一个通用的编码样式问题,关于哪种样式更一般或更优雅。
阅读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;
}
这只是Java遵循的一种编码样式。在第二种方法中,“成员变量声明”定义了更易读的变量,同时在方法中定义了相同类型的变量(第一种方法),如果开发人员将定义的名称与Set<K> keySet = this.keySet;
而不是Set<K> ks = keySet;
相同,则在读取代码时会造成混乱。
[包括Android在内的许多社区都遵循相同的风格。 “ m”用作声明成员变量的前缀。因此,如果我重写上面的代码,它将是
private Set<K> mKeySet; public Set<K> keySet() { Set<K> keySet = mKeySet; if (keySet == null) { keySet = new KeySet(); mKeySet = keySet; } return keySet; }
public Set<K> keySet() { if (mKeySet == null) { mKeySet = new KeySet(); } return mKeySet; }
同样,您添加的代码具有Java所遵循的样式。