最近编写一个程序,运到了一个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);
}
这样就确保每次存入的引用值都不同了