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