gpt4 book ai didi

java - 列出覆盖对象java

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

嗨,我的 java 代码遇到问题...

问题出在我的列表的 add(e) 中,如下所示:

List<Sms> listSms = new ArrayList<Sms>();
for(int i = 0; i < grupo.size(); i++){
Grupo group = new GrupoDao().carregaById(grupo.get(i),usuario.logado);
for(int j = 0; j < group.getContatos().size(); j++){
sms.setNumber(group.getContatos().get(j).getNumber());
listSms.add(sms);//Here he override all the list sms.number to last one added
}
}

有人可以帮我吗?

最佳答案

您添加到列表中的不是实例,而是对实例的引用。因此,最后,列表中的所有引用都引用同一个实例。这意味着,您使用任何引用对实例所做的更改都将反射(reflect)在您之前添加到列表中的所有引用中。

解决方案是每次在列表中添加对它的引用时创建一个新的 Sms 实例。您必须在 for 循环中执行此操作。

for(int j = 0; j < group.getContatos().size(); j++){
Sms sms = new Sms();
sms.setNumber(group.getContatos().get(j).getNumber());
listSms.add(sms);//Here he override all the list sms.number to last one added
}

关于java - 列出覆盖对象java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15031373/

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