日期:2014-05-20  浏览次数:20867 次

java枚举转换
有一个枚举,

public enum PayStatusEnum {
NOPAY("00"),
PAYED("01"),
/**
 * 货到付款
 */
WAITPAY("02"),
/**等待发货
 * 
 */
WAITSEND("03");


private final String value;
public String getValue()
{
return value;
}
private PayStatusEnum(String st)
{
value = st;
}
}

通过 PayStatusEnum enum1=Enum.valueOf(PayStatusEnum.class,"00"); 想把串转成枚举,老是报错,
 java.lang.IllegalArgumentException: No enum const class com.market.portal.services.orders.iservices.PayStatusEnum.00
at java.lang.Enum.valueOf(Enum.java:196)
at test.EnumTest.main(EnumTest.java:9)
请教怎么处理?
java

------解决方案--------------------
引用:
能不能通过值获得实例呢?

你要用值获得实例可以在你的PayStatusEnum 类中加入

public static PayStatusEnum getEnum(String value){//根据值获得实例
     PayStatusEnum e=null;
     for(PayStatusEnum e1:PayStatusEnum.values())
     if(e1.value.equals(value)){
     e=e1;
     break;
     }
     return e;
}

后面你只要调用
PaystatusEnum e=PayStatusEnum.getEunm("00");//这个e就是你的实例了
System.out.print(e);