java - 如何从同一实体的数组列表创建实体的不同实例
问题描述
我有一个“Person”实体类型的arraylist,我想从arraylist 中获取Person 类型的对象的单独实例。但是当我做同样的事情并更新实体的属性时,arraylist 中的实体会被更新。因此,在所有对象的内存中都保持相同的引用。我想创建一个单独的内存引用。在下面的代码 personEntity 中,位置 0 和 1 都得到 cardType “add”。
Person personEntity=personArrayList.get(0);
personEntity.setCardType("add");
personArrayList.add(1,personEntity);
解决方案
为 Person 编写一个复制构造函数并执行以下操作:
Person personEntity = new Person(personArrayList.get(0));
您的复制构造函数将取决于您的 Person 类的结构。复制构造函数将使用 personArrayList.get(0) 中的属性值来初始化 Person 的新实例。
推荐阅读
- java - 创建 WebView 并在后台加载它,然后在多个地方重用它
- javascript - 为我的 Firebase 网站创建唯一的动态网址?
- java - 有没有办法让 test.Bat 文件保持打开并运行其余代码?
- r - 闪亮过滤器在本地工作,应用程序发布正常,但过滤器在选择两个类别时有怪癖
- java - 在连接查询 Spring-Boot 中访问多个实体值
- vba - 类型工作表的 VBA 全局变量
- android - 不确定为什么按钮不在本机反应的中心
- php - 使用 S3 流和来自 blob 的 jquery 从 php 下载 zip 文件
- python - 当估计矩阵用作MVN分布的协方差矩阵时,如何避免输入矩阵在RNN模型中不可逆错误
- swift - 闰年和使用的符号