gpt4 book ai didi

java : passing array of reference?

转载 作者:行者123 更新时间:2023-12-01 07:41:23 26 4
gpt4 key购买 nike

我有对象集合数组,我将此引用传递给方法,该方法将执行一些业务逻辑并更新对象,因此它将反射(reflect)在原始对象中,因为我将其作为引用传递。现在我的问题是如何避免原始对象的更新。

如果涉及克隆,请告诉我针对上述情况我需要进行哪种克隆

谢谢

最佳答案

你的情况有点棘手:

您有一个对象引用数组。

Java 总是按值传递,因此当您将数组的引用传递到方法中时,对数组的引用是按值传递的。

因此该方法有一个对与调用范围相同的数组的新引用。

您的问题的答案是:如果您不希望更改反射(reflect)在对象中,则需要复制对象。所以,要经历它。

  1. 您有一个对象引用数组。
  2. 您想要根据对象执行一些工作,但不想修改对象。
  3. 您应该创建一个对象数组——该数组中的对象是原始数组的副本。
  4. 我所说的“复制”并不是指仅执行对象复制=原始操作。您将需要创建一个新对象,即副本。在相关类上使用 getCopy() 方法来创建实例的副本可能是个好主意。如果您的对象有子对象或包含其他对象,这可能会很复杂。
  5. 您将副本数组传递到执行该操作的方法中。

关于java : passing array of reference?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4481265/

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