在java中,我试图用一堆不同的对象填充一个列表。但是发生的事情是,每次我将另一个对象添加到列表中时,列表中的所有对象都会变成相同的东西。
有问题的代码:
private static ArrayList<Card> deck = new ArrayList<Card>();
private static void setupDeck(){
for(int i = 0; i < suits; i++){
for(int j = 0; j < cards; j++){
deck.add(new Card(i,j));
}
}
}
什么时候
deck.add(new Card(i,j));
被称为曾经在我的列表中的对象正在变成最后一个对象的副本以添加到列表中。我知道我正在通过引用传递对象,但我不明白为什么。我不应该声明
new Card(i,j)
创建一个新的 Card 对象进行存储。我该如何解决这个问题?