了解Java源代码:为什么这种空处理逻辑如此复杂?

时间:2019-05-19 11:30:41

标签: java null

我正在阅读JDK源代码。我在类public Collection<V> values()中看到了方法HashMap

   public Collection<V> values() {
        Collection<V> vs = values;
        if (vs == null) {
            vs = new Values();
            values = vs;
        }
        return vs;
    }

但是我认为这种逻辑会更简短些:

public Collection<V> values() {
    if (values == null) {
        values = new Values();
    }
    return values;
}

我认为这背后一定有原因。请告诉我为什么。

0 个答案:

没有答案