Sé que Java realmente no usa el pase exacto por referencia, sino que pasa por copia de referencia. Esta es la razón por la cual una función de intercambio que acaba de tratar de intercambiar referencias no funcionaría en Java. ¿Un bucle for-each hace esto también? Por ejemplo, dado el siguiente código ...¿El Java para cada ciclo devuelve una referencia, o una copia de referencia?
for (Constraint c : getLeafNodes(constraintGraph)){
c = new Constraint();
}
... Quiero ir a través de una estructura de árbol de forma recursiva definida, y encontrar todos los nodos hoja. Cada nodo hoja debe reemplazarse con un nuevo nodo vacío. ¿Hará esto lo que espero, o simplemente establecerá una copia de la referencia a cada nodo hoja en un nuevo nodo?
Escribí un método similar en otra pieza de código que pasaba pruebas unitarias, lo que me hace pensar que un bucle for-each utiliza referencias, no copia de referencia, pero nuestro software de calidad de código lo marcaba como un almacén muerto a un local variable, error mayor.
Gracias.
El bucle for-each no devuelve nada (¿a quién?). Tu pregunta no coincide con el título. –