62,628
社区成员
发帖
与我相关
我的任务
分享
Person person = new Person();
for(int i = 0; i < 10; i++) {
person.setName("名字" + i);
list.add(person);
System.out.println(list.get(i));
}
这个简单代码地模拟了你出现的问题,可以看到,我们只创建了一个Person对象,因为只new了一次Person,只是在for循环中每次都把同一个Person对象的name属性改变了而已,Person对象还是那个对象,上面的代码每次能打印不一样的人名出来,因为每次打印的时候你都修改了Person的name属性,但是for循环走完之后,list中虽然保存了10个元素,但这10个元素都是同一个对象,它的name属性都是:名字9,这时你再遍历打印list的话,就知道了,全部都是名字9。
如果我的答案解决了你的问题,麻烦结贴给点积分,谢谢^_^