【发布时间】:2017-04-26 15:42:53
【问题描述】:
在我的洗牌功能中,
public void shuffleDeck(){
Random rng = new Random();
for(int i = 0; i < shuffledDeck.length; i++){
deckOfCards[i] = shuffledDeck[rng.nextInt(52)].setFlag(true);
我想遍历所有 52 张牌,然后将它们随机排列到另一个数组中。但是,为了防止同一张卡被覆盖,我在另一个类中编写了一个 setFlag 函数,该函数接受一个布尔参数,然后我将使用它来检查标志是否已设置等等。但是,在最后一行,我得到了错误 “类型不匹配:无法从 void 转换为 Card”......完全不确定我为什么会收到此错误。
【问题讨论】:
-
卡片 c = shuffledDeck[rng nextInt(52)]; c.setFlag(true);卡片组[i]=c;
-
setFlag 是一个函数,而 shuffledDeck 是一个数组。您不能使用数组调用函数。
-
那么这是怎么回事?deckOfCards[cardCount].setSuit(suit[suitCount]); deckOfCards[cardCount].setFace(face[faceCount], faceValue);
标签: java arrays types mismatch