在瀏覽Java API源代碼時,我經常看到方法參數被重新分配給局部變量。爲什麼會這樣做?爲什麼方法參數重新分配給局部變量?
void foo(Object bar) {
Object baz = bar;
//...
}
這是java.util.HashMap中
public Collection<V> values() {
Collection<V> vs = values;
return (vs != null ? vs : (values = new Values()));
}
您能否請給我們看幾個示例方法? – jjnguy 2010-08-30 15:58:09
我認爲Doug Lea被稱爲在'concurrent'包中執行此操作?也許我弄錯了,但(在這種情況下,我很抱歉)。相關/愚蠢:http://stackoverflow.com/questions/3080074/why-would-anyone-make-additional-local-variable-just-to-put-final-keyword-on-it和http:// stackoverflow。 com/questions/2785964/in-arrayblockingqueue-why-copy-final-member-field-into-local-final-variable;好的,我認爲它有點不對,但是Doug Lea和'final'局部變量有相似之處。 – polygenelubricants 2010-08-30 16:01:50
[爲什麼不直接使用實例字段,但將其分配給本地變量?](https://stackoverflow.com/questions/7943763/why-it-doesnt-use-the-instance-字段直接但是分配它到一個本地變量) – anacron 2017-06-28 09:33:04