例如,这是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源代码和其他一些地方已经观察到了相同风格的其他案例。所以我想知道的是这种代码风格的目的是什么。谢谢!