在浏览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