gpt4 book ai didi

java - 如何在 Java 中将数组列表从一个类复制到另一个类?

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

我知道,为了复制数组列表并拥有两个彼此独立的列表,您必须使用深层复制(将对象从一个列表复制到另一个列表,而不仅仅是引用),但是有没有一种方法可以做到这一点跨类?

例如;我正在从 Class1 调用 Class2。在 Class2 中,对象会根据事件添加到自定义对象的 ArrayList 中。我希望能够将此 ArrayList 传输到 Class1,但每当我尝试时,我都会得到一个 NullPointer。

有什么线索吗?

最佳答案

这高度表明存在设计缺陷。

看看是否可以通过将列表包装在类中、共享该类并使用它来控制对列表的访问来实现相同的目标。

唯一不能完全起作用的情况是,如果您的两个类必须独立修改列表。

如果这是一个要求,那么我可能会将包装类的不同实例交给每个修改类(引用相同的源列表),然后有一种方法可以用 ID 标记新添加的数据引用原始类 - 这样当您查询时,包装器只会返回未标记的项目(属于原始共享列表的一部分)和用其自己的 ID 标记的项目。

该类或包装类可以包含第二个列表,并且在查询时返回原始列表和第二个列表的组合结果。

我几乎从不想要深拷贝。这种情况确实发生过,但相当罕见。

如果您发布更多信息,也许我们可以更具体地帮助重新设计。

另外:(编辑)复制的数组列表很可能不是您的问题——它可能不是真正的深层复制。对于深层复制,这意味着您为数组列表中的每个对象实现一个复制方法(我相信它们应该被称为 .clone(),我从不使用这个东西——正如我所说,这是不好的 juju),然后您对每个列表调用复制方法,以在下一个列表中获取新副本。

此外,您复制的对象引用的任何对象也可能应该被克隆。 “深”意味着一直到树下。

我猜你在这个过程中的某个地方失败了。

我真的很想听听为什么您觉得您需要一份副本而不是引用资料。

关于java - 如何在 Java 中将数组列表从一个类复制到另一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204583/

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