我有Places
的列表。每个Place
都有一个与其链接的其他Place's
的ArrayList。
创建Place
时,它会存储places
的ArrayList。这个ArrayList就是这样生成的......
public ArrayList<Place> getPlaces(){
` for(Place p : link.getPlaces()){
places.add(new Place("Value1","Value2");
}
return places;
}
但是,places
中的值似乎始终是最后创建的元素。我已经检查了place
的构造函数,并且正在创建的位置不同,但是我在ArrayList中收到的值不是。为什么会发生这种情况?
如果它有助于我从另一个类中调用此代码,该类用这样的东西打印这些地方......
ArrayList<Place> places = p.getPlaces(); //Where p is a place.
for(Place p : places){
System.out.println(p.toString());
}
答案 0 :(得分:0)
在第一种方法中,即使它们是不同的对象,所有Place对象看起来都是一样的。
答案 1 :(得分:0)
我自己能解决这个问题。事实证明,我正在软复制我的自定义对象的一部分,而硬复制其余部分导致我相信ArrayList被覆盖。