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