在ORMLite中保留自定义枚举值

时间:2014-09-29 09:57:57

标签: enums ormlite

我想将Enum不是字符串而不是序号,而是作为构造函数中的给定数字:

public enum EAdUnitType {
    NOTIFICATION(1), 
    BANNER(2);

    private int mId;

    public int getId() {
        return mId;
    }
}

我想坚持使用getId()。

1 个答案:

答案 0 :(得分:2)

使用可以从id

添加到枚举
public enum EAdUnitType {
   NOTIFICATION(1), 
   BANNER(2);

    private int mId;

    public int getId() {
       return mId;
    }

    public static EAdUnitType fromId(int id) {
      EAdUnitType [] types = EAdUnitType .values();
        for (EAdUnitType eType : types) {
            if (eType.mId == id) {
                return eType;
            }
        }
      return null;
    }
}

并将数字ID保存到数据库

public class DbEntity {
   private int mEAdUnitTypeId;

   .....

   public void setEAdUnitType(EAdUnitType type) {
      mEAdUnitTypeId = type.getId();
   }

   public EAdUnitType getEAdUnitType() {
      return EAdUnitTypeId.fromId(mEAdUnitTypeId);
   }

   .........
}