CaseResVideoEntity caser=new CaseResVideoEntity();List<CaseResVideoEntity> lists = new ArrayList<>();for(int i=0;i<3;i++){caser.setCaseId("xx"+i); lists.add(caser);for(CaseResVideoEntity e:lists){System.out.println(e.getCaseId());}}这段代码是在for循环中动态的修改实体类中的参数,并把修改参数后的实体类添加到list集合中,正确的逻辑结果,list里应该是 xx0 xx1 xx2,可是却出错了:xx0xx1xx1xx2xx2xx2。这是在循环内打印的结果,如果在循环外打印list结果就是xx2xx2xx2。将实体类放到循环中就正常了,我想知道是为什么
2 回答
月关宝盒
TA贡献1772条经验 获得超5个赞
CaseResVideoEntity caser=new CaseResVideoEntity();你在外面new出来的话,他的引用一直不变,所以数据永远不变
添加回答
举报
0/150
提交
取消