-2

这是我的代码:

if (cards.get(i) instanceof ExtensionCard) {
    ExtensionCard d = (ExtensionCard)cards.get(i);
}

在这里,我正在创建一个新的ExtensionCard,他正在获取 ArrayList cards.get(i),并且代码在该部分中工作得很好。

在另一堂课上,我正在这样做:

if (this.getCards().get(i) instanceof ExtensionCard) {
    ExtensionCard d = (ExtensionCard)this.getCards().get(i);
}

这几乎相同,但d没有得到具有的 ArrayList this.getCards().get(i)

我需要帮助了解为什么会发生这种情况。

4

1 回答 1

2

在这里,我正在创建一个新的 ExtensionCard,他正在获取 ArrayList

不正确。

不是在创建一个新的ExtensionCard. 您正在将 的引用分配给类型的cards.get(i)变量ExtensionCard。两者dcards.get(i)指的是同一个对象。

但是 d 没有得到 this.getCards().get(i) 拥有的 ArrayList

因为它们引用同一个对象,d所以如果有一个列表,就会有this.getCards().get(i)一个列表。

于 2018-10-18T02:03:43.070 回答