如果将对象A转换为对象B,那么B是否会将ArrayList与A隔离?

时间:2018-10-18 01:59:40

标签: java object arraylist

这是我的代码:

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。

我需要有关为什么会发生这种情况的帮助。

1 个答案:

答案 0 :(得分:2)

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

不正确。

创建新的ExtensionCard。您正在将cards.get(i) reference 分配给类型为ExtensionCard的变量。 dcards.get(i)都引用相同对象。

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

由于它们引用了 same 对象,因此,如果d具有列表,则this.getCards().get(i)将具有列表。