大佬!请问在Java中在循环里动态像list集合中添加数据出错?具体问题在下面!

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。将实体类放到循环中就正常了,我想知道是为什么

互换的青春
浏览 206回答 2
2回答

月关宝盒

CaseResVideoEntity caser=new CaseResVideoEntity();你在外面new出来的话,他的引用一直不变,所以数据永远不变
打开App,查看更多内容
随时随地看视频慕课网APP