java - 无法从 Card 转换为 int

标签 java arrays types int

所以我有这个 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;

您正在尝试使用内存作为数组的索引。索引始终是整数,而 memoryCard 的实例。

当您编写 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/

相关文章:

java - Solr 因在 org.apache.solr.core 上打开新搜索器时出错而停止

javascript - 获取对象属性的长度,该对象属性是对象数组的属性

java - 一个字符串中有相同的字符

c# - C# 和 VB 中的锯齿状数组 CLS 合规性不同?

c++ - 在 C++ 中存储结果 int*long 的最佳数据类型是什么

typescript :如何解释扩展和函数类型之间的这种交互

java - 如何在mysql中插入NULL,尤其是INT dataType

java - Android:Matcher.find() 永远不会返回

java - 如何在已排序的双向链表中插入字符串数据?

c++ - 为什么 a[] 和 *a 的行为不同?