最近编写一个程序,运到了一个bug。
遍历一个ArrayList数组时,发现里面的对象都是相同的值,可是自己明明存的不是一样的。找了半天错误,后面才想起来,ArrayList里面存的是具体的引用,搞了半天我存的都是同一个对象,解决办法就是每次存入对象进ArrayList时都new一个对象进去:
for (String id : ids) {
Picture picture = new Picture();
if ((Integer.parseInt(id) % 2) == 0)
picture.setPid(Integer.parseInt(id));
else
picture.setPid(Integer.parseInt(id));
System.out.println(Integer.parseInt(id));
objects.add(picture);
}
这样就确保每次存入的引用值都不同了
本文分享了一位程序员在使用ArrayList存储对象时遇到的bug经历。由于ArrayList存储的是对象引用,导致所有元素指向同一实例。文章详细介绍了如何通过每次new一个对象来避免此问题,确保每个元素独立。
1061

被折叠的 条评论
为什么被折叠?



