在java代码中,声明本地引用以引用成员进行更多操作的目的是什么?

时间:2017-02-09 09:02:14

标签: java threadpoolexecutor

例如,这是java.util.concurrent.ThreadPoolExecutor的代码片段:

public long getTaskCount() {
    final ReentrantLock mainLock = this.mainLock;
    mainLock.lock();
    try {
        long n = completedTaskCount;
        for (Worker w : workers) {
            n += w.completedTasks;
            if (w.isLocked())
                ++n;
        }
        return n + workQueue.size();
    } finally {
        mainLock.unlock();
    }
}

在这个片段中,创建了局部变量mainLock来引用this.mainLock,但在我看来,这是不必要的,我只是直接使用this.mainLock。

实际上,在HashMap源代码和其他一些地方已经观察到了相同风格的其他案例。所以我想知道的是这种代码风格的目的是什么。谢谢!

0 个答案:

没有答案