永发信息网

java List封装问题

答案:2  悬赏:40  手机版
解决时间 2021-04-11 04:41
  • 提问者网友:情歌越听越心酸
  • 2021-04-10 18:01

执行语句如下

List list= new ArrayList();

aa.setC_ID("1111");//id
aa.setC_RequireID("1111");

list.add(aa);

aa.setC_ID("1112");//id
aa.setC_RequireID("1111");

list.add(aa);

for (int i = 0; i < list.size(); i++) {

aa = (AA)sqdwz.get(i);
System.out.println(i+".........................."+aa.getC_ID());
}

输出如下

0..........................1112

1..........................1112

输出的都变成最后封装的东西了 哪位能帮忙解决下 为啥

最佳答案
  • 五星知识达人网友:独钓一江月
  • 2021-04-10 18:13

每次add前需要创建新的对象,因为放到list里面的只是引用,还是指向原来的AA对象


List list= new ArrayList();



aa.setC_ID("1111");//id
aa.setC_RequireID("1111");


list.add(aa);


aa = new AA()



aa.setC_ID("1112");//id
aa.setC_RequireID("1111");


list.add(aa);



全部回答
  • 1楼网友:笑迎怀羞
  • 2021-04-10 18:57

这个原因是因为你老是操作的是同一个对象!就是同一个aa!

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯