为了账号安全,请及时绑定邮箱和手机立即绑定

如何从Java中的字符串值中获取枚举值?

如何从Java中的字符串值中获取枚举值?

呼如林 2019-06-05 13:45:10
如何从Java中的字符串值中获取枚举值?如果我有一个枚举,那就是.public enum Blah {     A, B, C, D}我希望找到字符串的枚举值,例如"A"那就是Blah.A..怎么可能这样做呢?是Enum.valueOf()我需要的方法?如果是这样,我将如何使用这个?
查看完整描述

3 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

是,Blah.valueOf("A")会给你Blah.A.

注意,名称必须是精确性匹配,包括案件:Blah.valueOf("a")Blah.valueOf("A ")双掷IllegalArgumentException.

静态方法valueOf()values()都是在编译时创建的,并且没有出现在源代码中。不过,它们确实出现在Javadoc中;例如,Dialog.ModalityType显示了这两种方法。


查看完整回答
反对 回复 2019-06-05
?
慕斯王

TA贡献1864条经验 获得超2个赞

如果文本与枚举值不相同,另一种解决方案是:

public enum Blah {
    A("text1"),
    B("text2"),
    C("text3"),
    D("text4");

    private String text;

    Blah(String text) {
        this.text = text;
    }

    public String getText() {
        return this.text;
    }

    public static Blah fromString(String text) {
        for (Blah b : Blah.values()) {
            if (b.text.equalsIgnoreCase(text)) {
                return b;
            }
        }
        return null;
    }}


查看完整回答
反对 回复 2019-06-05
  • 3 回答
  • 0 关注
  • 4044 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号