java - 如何将枚举类型设置为字符串类型

标签 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());
 }

最佳答案

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

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

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

关于java - 如何将枚举类型设置为字符串类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19537803/

相关文章:

java - Java中如何将图像置于前台?

Java 绘制奇怪的视觉工件/错误

java - 如何使用spring表单发送表单值?

在 C++ 中通过引用将枚举作为默认参数传递时出现 C++ 错误

java - 枚举作为一个类(class)?

swift - 如何在 Swift 中将 UIColor 用作枚举类型的 RawValue

java - 如何将正则表达式分配给某些枚举

Java正则表达式排除文件路径中的点

java - Java继承中的方法覆盖

c++ - 无法将枚举值传递给递归模板 (C++)