我有一个使用枚举类型的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());
 }

最佳答案

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

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


尽管for循环看起来有严重缺陷。您将一次又一次地覆盖priceType中的myDeal

07-21 11:08