Wal*_*ter 21 java enums enumeration converter
给出以下java枚举:
public enum AgeRange {
A18TO23 {
public String toString() {
return "18 - 23";
}
},
A24TO29 {
public String toString() {
return "24 - 29";
}
},
A30TO35 {
public String toString() {
return "30 - 35";
}
},
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将字符串值"18 - 23"转换为相应的枚举值,即AgeRange.A18TO23?
谢谢!
sak*_*ana 30
最好和最简单的方法是这样的:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
然后你只需要调用getByValue()带有String输入的方法.