java 中没有找到类型的枚举常量

2024-01-17

我在用enum在java中,这是枚举

public enum AbuseSectionType{

    MUSIC("Music"), DANCE("Dance"), SOLO("Solo"), ACT("Act")

    private String displayString;

    AbuseSectionType(String displayValue) {
        this.displayString = displayValue;
    }

    @JsonValue
    public String getDisplayString() {
        return displayString;
    }

    public void setDisplayString(String displayString) {
        this.displayString = displayString;
    }
}

我正在努力获取价值AbuseSectionType.valueOf("Music")。我没有得到任何枚举常量,也没有发现错误。我应该有价值MUSIC.


The name()枚举的名称是声明它时指定的名称,MUSIC在你的情况下。

如果我们阅读 javadocvalueOf():

返回指定枚举类型的枚举常量 指定名称。

valueOf()正在使用name()枚举的。但你想要达到的目的不同,所以不能使用这种方法。相反,您可以做的是创建自己的方法,从您自己的字段中查找值(displayString).

这是一个例子:

public static AbuseSectionType fromDisplayString(String displayString)
{
    for(AbuseSectionType type : AbuseSectionType.values())
        if(type.getDisplayString().equals(displayString)
            return type;

    return null; //not found
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java 中没有找到类型的枚举常量 的相关文章

随机推荐