如何将枚举类型设置为String类型

时间:2013-10-23 09:23:41

标签: java enums

我有一个使用枚举类型

的java对象
  public class Deal{

public enum PriceType {
        fixed, hour, month, year
    }

     @Element(name = "price-type", required = false)
     private PriceType priceType;

  }

这个对象是从某个API填充的,我在具有字符串类型变量

的数据库对象中重新启动它
MyDeal{
    private String priceType;

    public String getPriceType() {
    return priceType;
   }

    public void setPriceType(String priceType) {
    this.priceType = priceType == null ? null : priceType.trim();
   }

}

为什么我不能像

那样设置我的数据库对象
 List<Deal>deals = dealResource.getAll(); 
 MyDeal myDeal = new myDeal(); 

 for (Deal deal : deals) {
     myDeal.setPriceType(deal.getPriceType());
 }

2 个答案:

答案 0 :(得分:1)

将Enumerated添加到属性

@Enumerated(EnumType.STRING)
@Element(name = "price-type", required = false)
private PriceType priceType;

答案 1 :(得分:1)

您无法直接将PriceType设置为字符串。你需要做这样的事情

for (Deal deal : deals) {
     myDeal.setPriceType(deal.getPriceType().name()); // name() will get that name of the enum as a String
}

虽然for循环看起来严重缺陷。您只需一遍又一遍地覆盖priceType中的myDeal