如何解决使用值确定枚举值
我陷入了一个看似简单的问题。
说我有以下枚举:
enum CARDS {
JOKER(1),JACK(2),QUEEN(3),KING(4),ACE(5)
;
private final int cardNumber;
CARDS(int cardNumber) {
this.cardNumber = cardNumber;
}
}
我想找到一种方法,该方法使用从单独的类中随机生成的整数来确定枚举(JOKER,JACK,QUEEN,KING,ACE)的值。这可能吗,这是个好习惯吗?
例如:
我有一个整数,例如3。
我想将整数与分配给枚举的常量值匹配,在这种情况下,我的整数3将导致与皇后配对。
解决方法
这很简单:
int integer = 3;
CARDS card = CARDS.values()[integer - 1];
注意:之所以有效,是因为QUEEN的序数为2(从零开始)。
使用CARDS.valueOf(String)
将枚举名称转换为CARDS成员。
就优良作法而言,我建议设计一种利用序数进行排序和随机选择的设计,如果需要等级或强度,请设置那些单独的属性(如您所做的那样)。
您可以选择一个随机成员:
CARDS[] deck = CARDS.values();
Random random = new Random();
CARDS card = deck[random.nextInt(deck.length)];
不依赖任何特定的序数值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。