Java从String创建枚举
这个问题在这里已经有了答案:
添加并使用这种方法
public static PaymentType parse(String type) {
for (PaymentType paymentType : PaymentType.values()) {
if (paymentType.getType().equals(type)) {
return paymentType;
}
}
return null; //or you can throw exception
}
枚举没有准备好使用此方法。 您或者需要使用确切的字段名称:
PaymentType.valueOf("SUBSCRIPTION_MODIFY");
或者编写你自己的方法,例如:
public static PaymentType fromString(String string) {
for (PaymentType pt : values()) {
if (pt.getType().equals(string)) {
return pt;
}
}
throw new NoSuchElementException("Element with string " + string + " has not been found");
}
所以这段代码:
public static void main(String[] args) {
System.out.println(PaymentType.fromString("subscr_modify"));
}
打印:
SUBSCRIPTION_MODIFY
valueOf
返回标识符与您传入的字符串相匹配的枚举项。
例如:
PaymentType t = PaymentType.valueOf("SUBSCRIPTION_NEW");
如果您想要获取type
字段与给定字符串匹配的枚举项,请在PaymentType
上编写一个静态方法,该方法通过PaymentType.values()
循环并返回匹配项。
上一篇: Java create enum from String
下一篇: How do I use enums together with command line arguments?