java - 快速枚举问题

标签 java enums

大家好,我有一个简单的问题。如果给定一个字符串值,我如何在枚举类中获取相应的 int 值?

例如:

给定一个字符串“Ordinary”,我希望返回值 0。这是我所拥有的:

public enum MembershipTypes 
{
    ORDINARY(0,"Ordinary"),
    WORKING(1,"Working"),
    CORE(2,"Core"),
    COORDINATOR(3,"Coordinator");

    private int intVal;
    private String strVal;

    /**
     * 
     * @param intValIn
     * @param strValIn
     */
    MembershipTypes(int intValIn, String strValIn)
    {
        intVal = intValIn;
        strVal = strValIn;
    }

    /**
     * 
     * Gets the integer value
     * @return intVal
     */
    public int getIntVal() 
    {
        return intVal;
    }

    /**
     * 
     * Gets the string value
     * @return strVal
     */
    public String getStrVal() 
    {
        return strVal;
    }
}

最佳答案

这是最简单的方法。将此静态方法添加到您的枚举中:

public static int getIntValForString(String strVal) {
   for (MembershipTypes e : MembershipTypes.values()) {
      if (e.getStrVal().equals(strVal)) {
         return e.getIntVal();
      }
   }
   throw new IllegalArgumentException("No such enum for string val:" + strVal);
}

关于java - 快速枚举问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6010049/

相关文章:

java - 在Eclipse中远程调试时如何单步进入JDK源代码

java - 如何使用 Eclipse 和场景生成器更改 Java 中的标签文本?

JavaFX 将组合框中的字符串字段显示为字符串的枚举(在 TableView 中)

php - MySQL 中 bool 值的 TINYINT 与 ENUM(0, 1)

java - JFreeChart - 如何在 TimeSeries 图表的 X 轴上实时显示并保存数据

Java - 无法获取自定义注释的值

java - 本地化数字和日期格式,但不本地化数字符号

c# - 如何在 ModelView 中防止 WPF 枚举

c# - 如何不包含标志

java - 枚举数组到字符串数组