【发布时间】:2015-05-17 13:38:08
【问题描述】:
我目前正在制作基本卡片组,但在使用枚举时遇到了问题。
如何在我的代码中修复以下错误(枚举类型可能未实例化)并获取分配给每个枚举的值
public enum Rank {
ACE(14),
KING(13),
QUEEN(12),
JACK(11),
TEN(10),
NINE(9),
EIGHT(8),
SEVEN(7),
SIX(6),
FIVE(5),
FOUR(4),
THREE(3),
TWO(2);
private final int rankValue;
Rank(int rankValue) {
this.rankValue = rankValue;
}
public int getRankValue() {
return rankValue;
}
}
private Card[] cards = new Card[52];
public Deck() {
int posInDeck = 0;
for (Suit s : Suit.values()) {
for (Rank r : Rank.values()) {
cards[posInDeck] = new Card(s.toString(),new Rank(r.getRankValue(), r.toString()), false);// ERROR HERE
posInDeck++;
}
}
}
【问题讨论】:
-
“我该如何解决以下错误”什么错误?提供错误信息和简短而完整的代码让我们重现它。现在看起来这个代码片段是
Deck类的一部分,但我只能假设它只在缩进级别和构造函数名称上。 -
为什么不只定义
Rank枚举中的值并将Rank.ACE传递给Card的构造函数(并相应地编辑Card中的字段/getter/setter?实例化一个枚举没有意义,因为枚举是一组静态值。
标签: java arrays enums playing-cards