我有一个使用枚举类型的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
。