如何将枚举值转换为整数?

2022-08-31 05:21:01

我有一个函数,它返回一个类型int。但是,我只有 TAX 枚举的值。

如何将 TAX 枚举值转换为 int?

public enum TAX {
    NOTAX(0),SALESTAX(10),IMPORTEDTAX(5);

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

TAX var = TAX.NOTAX; // This value will differ

public int getTaxValue()
{
  // what do do here?
  // return (int)var;
}

答案 1

您需要以某种方式公开枚举,例如value

public enum Tax {
    NONE(0), SALES(10), IMPORT(5);

    private final int value;
    private Tax(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}

...

public int getTaxValue() {
    Tax tax = Tax.NONE; // Or whatever
    return tax.getValue();
}

(顺便说一句,我已经更改了名称,使其更加传统和可读。

这是假设您希望在构造函数中分配值。如果这不是您想要的,您需要向我们提供更多信息。


答案 2

我更喜欢这个:

public enum Color {

   White,

   Green,

   Blue,

   Purple,

   Orange,

   Red
}

然后:

//cast enum to int
int color = Color.Blue.ordinal();