En regardant à travers le code source de l'API Java, je vois souvent les paramètres de la méthode réaffectés aux variables locales. Pourquoi cela a-t-il déjà été fait?Pourquoi les paramètres de méthode sont-ils réaffectés aux variables locales?
void foo(Object bar) {
Object baz = bar;
//...
}
C'est dans java.util.HashMap
public Collection<V> values() {
Collection<V> vs = values;
return (vs != null ? vs : (values = new Values()));
}
Donne-nous quelques exemples de méthodes à regarder? – jjnguy
Je pense que Doug Lea est connu pour faire cela dans le paquet 'concurrent'? Peut-être que je me suis trompé, cependant (auquel cas je m'excuse). Relatif/dupe: http://stackoverflow.com/questions/3080074/why-would-anyone-make-additional-local-variable-just-to-put-final-keyword-on-it et http: // stackoverflow. com/questions/2785964/in-arrayblockingqueue-pourquoi-copier-final-membre-champ-dans-local-final-variable; OK Je me suis trompé, mais Doug Lea fait quelque chose de similaire avec les variables locales 'final'. – polygenelubricants
Copie possible de [Pourquoi n'utilise-t-il pas directement le champ d'instance, mais l'affecte à une variable locale?] (Https://stackoverflow.com/questions/7943763/why-it-doesnt-use-the-instance- field-directement-but-assigne-it-to-a-local-variab) – anacron