java - 如何将枚举值转换为int?

标签 java enums

我有一个返回 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;
}

最佳答案

你需要让枚举以某种方式暴露 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();
}

(顺便说一句,我已将名称更改为更传统和可读性。)

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

关于java - 如何将枚举值转换为int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8157755/

相关文章:

java - 使用枚举/按位将 DaysOfWeek 作为单个整数存储在 sqlite 数据库中 - Java

java - HttpURLConnection getResponseCode() 不起作用

java - XML验证: Am I Doing It Right?

ruby-on-rails - 如何动态获取枚举的字符串值?

c# - 在 C# 中的方法中定义枚举?

Java Enum 构造函数是私有(private)的吗?

C#:非标志枚举,有没有更简单的方法来检查枚举以匹配多个值之一?

java - 读取响应 X-XSS-protection 响应 header 中 header 的值

java - 在 javac 中强制执行包声明检查

java - 如何固定一捆卡片