gpt4 book ai didi

Java - 修改列表会修改包含列表的对象

转载 作者:行者123 更新时间:2023-11-30 05:32:07 25 4
gpt4 key购买 nike

我需要创建一个客户列表,每个客户都有一个工作列表。将列表分配给客户端时,它通过引用传递,并且对列表所做的任何更改(例如清除它)也会反射(reflect)在客户端对象中。

Client client = new Client();
Job job = new Job();
List<Job> jobs = new ArrayList<>();
client.job_run_user_login = "razvan";
job.action = "EMAIL";
jobs.add(job);
client.jobs = jobs;
jobs.clear();

运行“jobs.clear(); ”行之前的客户端对象:enter image description here

运行“jobs.clear(); ”行之前的客户端对象:enter image description here

如何避免这种情况?

最佳答案

通过复制集合。

client.jobs = new ArrayList<>(jobs);

关于Java - 修改列表会修改包含列表的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57316204/

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