如何在枚举中获取属性的值?

时间:2016-03-12 00:22:33

标签: java enums

所以我有这个枚举...

public enum Card {

ACE(1), TWO(2), THREE(3), FOUR(4), FIVE(5), SIX(6), SEVEN(7), EIGHT(8), NINE(9), TEN(10), JACK(10), QUEEN(10), KING(10);

private int value;

private Card(int value) {
    this.value = value;
}

static int getCardValue(Card someCard)
{
    return someCard.getValue();
}

int getValue()
{
    return Card.values()[someCard];
}

问题是我需要能够打电话

getCardValue(card);

让它返回一张卡片的价值,就像5.我已经尝试了多件事情但无济于事。这适用于学校,getCardValue方法必须与现在完全一样;我唯一可以改变的是getValue里面的东西。所以我需要帮助搞清楚要放什么

int getValue()
{
return Card.values()[someCard];
}

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

想想简单!

int getValue()
{
    return value;
}

value指的是字段

private int value;

在构造函数中设置:

private Card(int value) {
    this.value = value;
}

为每个枚举文字调用构造函数。这是您最终定义值的地方:

ACE(1), TWO(2), THREE(3), ...