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