阶扩展堆栈不起作用

问题描述:

这工作阶扩展堆栈不起作用

class Deck { 
    var cards : Stack[Card] = new Stack[Card] 
    for (card <- Card.possibleCards.keySet; suit <- Card.suits) { 
    cards.push(new Card(card, suit)) 
    } 
} 

但这并不

class Deck[Card] extends Stack[Card] { 
    for (card <- Card.possibleCards.keySet; suit <- Card.suits) { 
    push(new Card(card, suit)) 
    } 
} 

我得到这个错误:

error: class type required but Card found 

有人能告诉我为什么吗?

+1

适合我。你对“Stack”的定义是什么?然而,这不是你的意思 - 在yuor代码中的卡片只是一个类型参数(例如,它可以被称为任何东西 - 例如T)。它会隐藏你的代码中定义的任何其他卡。我认为你的意思是'class Deck extends Stack [Card]' –

+0

import scala.collection.mutable.Stack – TheJKFever

+0

仍然适用于我。但看到我的其他评论,这几乎肯定不是你的意思。此外,卡的定义是需要一个完整的可重复的例子 –

这只是一个语法错误,我需要从Deck中删除类声明卡。 像这样

class Deck extends Stack[Card] { 
    for (card <- Card.possibleCards.keySet; suit <- Card.suits) { 
    push(new Card(card, suit)) 
    } 
}