这可能是一个太基本的问题。我已经尝试了已经给出的方法,但是没有用。 我想从另一个类调用ENUM。
package com.blackjack.game.cards;
public enum Card implements Comparable<Card> {
ACE(1, 11),
KING(13, 10),
QUEEN(12, 10),
JACK(11, 10),
TEN(10, 10),
NINE(9, 9),
EIGHT(8, 8),
SEVEN(7, 7),
SIX(6, 6),
FIVE(5, 5),
FOUR(4, 4),
THREE(3, 3),
TWO(2, 2);
public final int rank;
public final int value;
private static final String[] CARD_NAMES = {
"joker", "ace", "two", "three",
"four", "five", "six", "seven",
"eight", "nine", "ten", "jack",
"queen", "king"
};
private Card(final int rank, final int value) {
this.rank = rank;
this.value = value;
}
public int getRank() {
return rank;
}
public int getValue() {
return value;
}
我正在通过以下方式执行此操作,但是它不起作用。
import com.blackjack.game.cards.Card;
Card card = new Card.ACE;
答案 0 :(得分:4)
在Java中,您无需使用new即可访问枚举值:
$ ./a.out
3$
另一个说明: 既然您有公共获取者,为什么不使用私有字段:
Card card = Card.ACE;
还有一个注意事项,就是CARD_NAMES似乎没有在任何地方使用,而是私有的。
枚举可以在字符串字段中包含名称:
private final int rank;
private final int value;
创建枚举时:
private final int rank;
private final int value;
private final String name;
public String getName() {return name;}
或者,您可以通过内置的ACE(1, 11, "ace"),
KING(13, 10, "king")
....
方法访问创建的枚举的名称;这是一个例子:
name()