java对象怎么 覆盖,列表覆盖对象Java

Hi i'm with a problem in my java code...

the problme is in the add(e) of my list like that:

List listSms = new ArrayList();

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

}

}

can anybody help me ?

解决方案

What you add to the list is not an instance, rather a reference to an instance. So, at the end, all the references in the list is referring to the same instance. That would mean that, the change you make to your instance using any reference, will be reflected for all the references you added earlier to the list.

The solution would be to create a new Sms instance each time you add a reference to it in the list. That you would have to do it in the for loop.

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

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值