我刚刚通过java.util.HashMap值实现,我发现了这种方式的values()实现
public Collection<V> values() {
Collection<V> vs = values;
if (vs == null) {
vs = new Values();
values = vs;
}
return vs;
}
为什么需要额外的vs变量?
为什么不呢只是
public Collection<V> values() {
if (values == null) {
values = new Values();
}
return values;
}
有什么特别的原因吗?如果有人知道背后的原因,请分享一下吗?