作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一个类(Card)有一个枚举字段。我将枚举类型定义封装为类中的私有(private):
private enum Suit {
HEARTS, DIAMONDS, SPADES, CLUBS;
}
在构造函数中,我想将随机花色分配给一张牌。当然,我可以在下一个离散统一变量上创建一个 switch-case 语句,并根据四个不同的值进行分支。有些东西告诉我有一种更紧凑的方法可以做到这一点。在 C 中,枚举值只是一个整数,但是
public Card() {
this.suit = this.random.nextInt(4);
}
(其中 this.suit 属于 Suit 类型)由于类型冲突在 Java 中不起作用。
最佳答案
使用:
Suit.values()[indexHere];
values()
方法在数组中给出枚举,顺序与您在代码中编写它们的顺序相同。该方法由编译器自动添加。
因此,在您的情况下:
public Card()
{
this.suit = Suit.values()[this.random.nextInt(4)];
}
关于java - 如何将整数分配给枚举字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20827896/
我是一名优秀的程序员,十分优秀!