首页 > 解决方案 > 如何从同一实体的数组列表创建实体的不同实例

问题描述

我有一个“Person”实体类型的arraylist,我想从arraylist 中获取Person 类型的对象的单独实例。但是当我做同样的事情并更新实体的属性时,arraylist 中的实体会被更新。因此,在所有对象的内存中都保持相同的引用。我想创建一个单独的内存引用。在下面的代码 personEntity 中,位置 0 和 1 都得到 cardType “add”。

 Person personEntity=personArrayList.get(0);
 personEntity.setCardType("add");
 personArrayList.add(1,personEntity);

标签: java

解决方案


为 Person 编写一个复制构造函数并执行以下操作:

 Person personEntity = new Person(personArrayList.get(0));

您的复制构造函数将取决于您的 Person 类的结构。复制构造函数将使用 personArrayList.get(0) 中的属性值来初始化 Person 的新实例。


推荐阅读