Java 在给定枚举值的情况下获取枚举名称

标签 java enums enumeration

在给定值的情况下,如何获取 Java Enum 类型的名称?

我有以下适用于特定枚举类型的代码,我可以让它更通用吗?

public enum Category {

    APPLE("3"), 
    ORANGE("1"), 

    private final String identifier;

    private Category(String identifier) {
        this.identifier = identifier;
    }

    public String toString() {
        return identifier;
    }

    public static String getEnumNameForValue(Object value){
        Category[] values = Category.values();
        String enumValue = null;
        for(Category eachValue : values) {
            enumValue = eachValue.toString();

            if (enumValue.equalsIgnoreCase(value)) {
                return eachValue.name();
            }
        }
        return enumValue;
    }
}

最佳答案

您应该通过调用 name() 来替换您的 getEnumNameForValue方法。

关于Java 在给定枚举值的情况下获取枚举名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3889248/

相关文章:

java - hibernate-查询行,具有来自两列的不同值对

java - InitialDirContext.search() 结果错误

python - Python 中的枚举 : isInstance error

java - 为什么枚举单例是序列化安全的?

java - 比较不同 jar 中公共(public)类的值

delphi - Delphi中的不规则枚举循环

java - 确定集合或数组中对象的类型

java - Struts 2 - 提交按钮onclick触发问题

java - 读取两个相同元素后停止读取剩余元素(Android、Java)

scala - 如何将宏用于简洁、类型安全、未装箱的枚举?