【发布时间】:2011-05-02 15:23:19
【问题描述】:
我知道 Java 并没有真正使用精确的按引用传递,而是按引用传递副本。这就是为什么只尝试交换引用的交换函数在 Java 中不起作用的原因。 for-each 循环是否也这样做?例如,给定以下代码...
for (Constraint c : getLeafNodes(constraintGraph)){
c = new Constraint();
}
...我想遍历一个递归定义的树状结构,并找到所有叶节点。每个叶节点都需要替换为一个新的空节点。这会达到我的预期,还是只是将每个叶节点的引用副本设置为新节点?
我在另一段通过单元测试的代码上写了一个类似的方法,这让我认为 for-each 循环使用引用,而不是引用副本,但我们的代码质量软件将其标记为局部变量的死存储,重大错误。
谢谢。
【问题讨论】:
-
for-each 循环不返回任何内容(给谁?)。您的问题与标题不符。