enums - 在 ORMLite 中保留自定义枚举值

标签 enums ormlite

我想将枚举保留为构造函数中的给定数字,而不是字符串和序数:

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

    private int mId;

    public int getId() {
        return mId;
    }
}

我想保留 getId()。

最佳答案

使用可以从 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);
   }

   .........
}

关于enums - 在 ORMLite 中保留自定义枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26097190/

相关文章:

android - List<String> 作为@ForeignCollectionField ormlite

c++ - 初始化枚举 C++

Swift 显示来自枚举参数的错误消息

android - select 中的 Ormlite 子查询

java - 带有 Ormlite 和 JavaFX 的嵌入式 Sqlite 数据库 : error creating table

android - Orm Lite - 找不到具有辅助类的单个(上下文)参数的公共(public)构造函数

c++ - 使作用域枚举与基础类型相当

带对象的 TypeScript 枚举

ios - Swift:如何实现字符串数组的枚举

java - OrmliteSqliteOpenHelper 出现 NoClassDefFound 错误