我目前正在制作基本的卡片组,使用枚举时遇到了问题。
如何在我的代码中修复以下错误(枚举类型可能无法实例化)并获取分配给每个枚举的值
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++;
}
}
}
最佳答案
您无法像实例化enum
那样实例化class
。语句new Rank(r.getRankValue(), r.toString())
不正确。
您可以改用以下方法:
cards[posInDeck] = new Card(s.toString(),r,false);