所以我有这个 Card 类型的数组,我们称之为 CardDeck[] 。我需要保存 CardDeck[0] 中的信息以便稍后使用。我认为我可以执行以下操作:
Card memory = theCards[0];
for(int i=0;i<51;i++){
theCards[i]=theCards[i+1];
theCards[51]=theCards[memory];
对我来说,发生的事情是首先我创建一个名为“type”Card 的内存的新变量,并将 theCards[0] 中的信息复制到其中。
然后每张“卡”都会向左移动一步,例如位于第二个位置的卡被移动(或复制)到第一个插槽,第三张卡被移动到第二个插槽,依此类推,一直到第 52 张牌移动到第 51 个槽位。然后,原来位于第一个插槽中的卡(我们保存到内存
中)移动到第52个插槽中。
但是最后一行不起作用,它说无法从 Card 转换为 int
,我不明白,我不使用 int
类型,它都是 卡
类型怎么了?
最佳答案
试试这个:
Card memory = theCards[0];
for(int i=0;i<51;i++){
theCards[i]=theCards[i+1];
}
theCards[51]= memory;
您正在尝试使用内存
作为数组的索引。索引始终是整数,而 memory
是 Card
的实例。
当您编写 Card memory = theCards[0];
时,您是在说您希望将卡片存储在 theCards
中的位置 0,并且希望将其分配给名为内存
的变量。
如果您说Card memory = theCards[42];
,它将是存储在您要分配给内存
的位置42的卡。
当你说theCards[51]=theCards[memory];
时,你试图说你想要这张卡位于某张卡的位置,并且你想将它放置在数组中的位置51处。但是“定位一些卡”没有意义,内存
不是一个位置,它是一个实际的卡。这就像对杂货店说你想要Sun Lolly 冰淇淋一样。您想要的不是太阳 Lollipop 冰淇淋,而是太阳 Lollipop 。
关于java - 无法从 Card 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19884456/