枚举类型可能未实例化错误
Enum types may not be instantiated error
我目前正在制作基本卡片组,但在使用枚举时遇到了问题。
如何修复代码中的以下错误(枚举类型可能未实例化)并获取分配给每个枚举的值
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())
我目前正在制作基本卡片组,但在使用枚举时遇到了问题。
如何修复代码中的以下错误(枚举类型可能未实例化)并获取分配给每个枚举的值
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())