gpt4 book ai didi

java - 每个循环的 Java 是否返回引用或引用副本?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:49:43 24 4
gpt4 key购买 nike

我知道 Java 并没有真正使用精确的按引用传递,而是按引用传递副本。这就是为什么仅尝试交换引用的交换函数在 Java 中不起作用的原因。 for-each 循环也能做到这一点吗?例如,给定以下代码...

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

...我想遍历一个递归定义的树状结构,并找到所有叶节点。每个叶节点都需要替换为一个新的空节点。这会按照我的预期进行,还是只是将对每个叶节点的引用的副本设置到一个新节点?

我在另一段通过单元测试的代码上写了一个类似的方法,这让我觉得 for-each 循环使用引用,而不是引用副本,但我们的代码质量软件将其标记为局部变量的死存储, 重大错误。

谢谢。

最佳答案

它也不会做。这类似于说

Object c = getObject();
c = new Object();

您所做的只是更改c 所指的内容。即使 Java 支持真正的按引用传递,这也行不通

关于java - 每个循环的 Java 是否返回引用或引用副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5858970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com