这是我的代码:
if (cards.get(i) instanceof ExtensionCard) {
ExtensionCard d = (ExtensionCard)cards.get(i);
}
在这里,我正在创建一个新的ExtensionCard
,他正在获取cards.get(i)
拥有的ArrayList,并且代码在那部分工作得很好。
在另一堂课中,我正在这样做:
if (this.getCards().get(i) instanceof ExtensionCard) {
ExtensionCard d = (ExtensionCard)this.getCards().get(i);
}
几乎相同,但是d
没有获得this.getCards().get(i)
拥有的ArrayList。
我需要有关为什么会发生这种情况的帮助。
答案 0 :(得分:2)
在这里,我正在创建一个新的ExtensionCard,他正在获取ArrayList
不正确。
您不创建新的ExtensionCard
。您正在将cards.get(i)
的 reference 分配给类型为ExtensionCard
的变量。 d
和cards.get(i)
都引用相同对象。
但是d没有获得this.getCards()。get(i)拥有的ArrayList
由于它们引用了 same 对象,因此,如果d
具有列表,则this.getCards().get(i)
将具有列表。