Hat die Java-for-each-Schleife return eine Referenz oder eine Referenz-Kopie?

Ich weiß, dass Java nicht wirklich genaue übergabe per Referenz, sondern als Verweis übergeben kopieren. Dies ist der Grund, warum eine swap-Funktion, die gerade versucht, die swap-Verweise nicht funktionieren würde in Java. Funktioniert eine for-each-Schleife dies tun, wie gut? Zum Beispiel, angesichts des folgenden code...

for (Constraint c : getLeafNodes(constraintGraph)){
    c = new Constraint();
}

...Ich will gehen durch eine rekursiv definierte Baum-artige Struktur, und finden Sie alle untergeordneten Knoten. Jeder Blattknoten ersetzt werden muss mit einem neuen, leeren Knoten. Wird das tun, was ich erwarte, dass es, oder wird es einfach eine Kopie der Referenz auf jedes Blatt-Knoten zu einem neuen Knoten?

Schrieb ich eine ähnliche Methode, die auf einem anderen Stück code, dass an unit-tests, das macht mich denke, eine for-each-Schleife verwendet Referenzen, nicht die Referenz kopieren, sondern unsere code-Qualität software markiert diese als tot-store, um eine lokale variable, ein großer Fehler.

Dank.

  • Die for-each-Schleife nicht wieder etwas (wem?). Ihre Frage entspricht nicht den Titel.
InformationsquelleAutor rybosome | 2011-05-02
Schreibe einen Kommentar