如何将枚举的字符串结果重写为enum? [英] How to convert string result of enum with overridden toString() back to enum?

查看:93
本文介绍了如何将枚举的字符串结果重写为enum?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  public enum AgeRange {

A18TO23 {
public String toString(){
return18 - 23;
}
},
A24TO29 {
public String toString(){
return24 - 29;
}
},
A30TO35 {
public String toString(){
return30 - 35;
}
},

}

是有没有办法将字符串值18-23转换为相应的枚举值,即AgeRange.A18TO23?



谢谢!

解决方案

最好最简单的方法就是这样:

  public enum AgeRange {
A18TO23(18-23),
A24TO29(24-29),
A30TO35(30-35);

private String value;

AgeRange(String value){
this.value = value;
}

public String toString(){
返回值;
}

public static AgeRange getByValue(String value){
for(final AgeRange element:EnumSet.allOf(AgeRange.class)){
if(element。 toString()。equals(value)){
return element;
}
}
返回null;
}
}

然后你只需要调用 getByValue()方法与 String 输入。


Given the following java enum:

public enum AgeRange {

   A18TO23 {
        public String toString() {        
            return "18 - 23";
        }
    },
   A24TO29 {
        public String toString() {        
            return "24 - 29";
        }
    },
   A30TO35 {
        public String toString() {        
            return "30 - 35";
        }
    },

}

Is there any way to convert a string value of "18 - 23" to the corresponding enum value i.e. AgeRange.A18TO23 ?

Thanks!

解决方案

The best and simplest way to do it is like this:

public enum AgeRange {
    A18TO23 ("18-23"),
    A24TO29 ("24-29"),
    A30TO35("30-35");

    private String value;

    AgeRange(String value){
        this.value = value;
    }

    public String toString(){
        return value;
    }

    public static AgeRange getByValue(String value){
        for (final AgeRange element : EnumSet.allOf(AgeRange.class)) {
            if (element.toString().equals(value)) {
                return element;
            }
        }
        return null;
    }
}

Then you just need to invoke the getByValue() method with the String input in it.

这篇关于如何将枚举的字符串结果重写为enum?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆