Я знаю, что Java на самом деле не использует точную передачу по ссылке, а скорее передачу по ссылке.Вот почему функция подкачки, которая только что пыталась обменяться ссылками, не будет работать в Java.Делает ли цикл for-each это также?Например, учитывая следующий код ...
for (Constraint c : getLeafNodes(constraintGraph)){
c = new Constraint();
}
... Я хочу пройти через рекурсивно определенную древовидную структуру и найти все конечные узлы.Каждый листовой узел необходимо заменить новым пустым узлом.Будет ли это делать то, что я от него ожидаю, или он просто установит копию ссылки на каждый конечный узел на новый узел?
Я написал аналогичный метод для другого фрагмента кода, который прошел модульные тесты, которыезаставляет меня думать, что цикл for-each использует ссылки, а не эталонную копию, но наше программное обеспечение качества кода пометило это как мертвое хранилище для локальной переменной, серьезная ошибка.
Спасибо.