Удачного кодирования.

ли использовать тип Enum в качестве встроенного поля в классе Entity с новыми компонентами архитектуры Android и библиотекой постоянства комнат?

Моя сущность (со встроенным Enum):

@Entity(tableName = "tasks")
public class Task extends SyncEntity {

    @PrimaryKey(autoGenerate = true)
    String taskId;

    String title;

    /** Status of the given task.
     * Enumerated Values: 0 (Active), 1 (Inactive), 2 (Completed)
     */
    @Embedded
    Status status;

    @TypeConverters(DateConverter.class)
    Date startDate;

    @TypeConverters(StatusConverter.class)
    public enum Status {
        ACTIVE(0),
        INACTIVE(1),
        COMPLETED(2);

        private int code;

        Status(int code) {
            this.code = code;
        }

        public int getCode() {
            return code;
        }
    }
}

Мой TypeConverter:

public class StatusConverter {

    @TypeConverter
    public static Task.Status toStatus(int status) {
        if (status == ACTIVE.getCode()) {
            return ACTIVE;
        } else if (status == INACTIVE.getCode()) {
            return INACTIVE;
        } else if (status == COMPLETED.getCode()) {
            return COMPLETED;
        } else {
            throw new IllegalArgumentException("Could not recognize status");
        }
    }

    @TypeConverter
    public static Integer toInteger(Task.Status status) {
        return status.getCode();
    }
}

Когда я компилирую это, я получаю сообщение об ошибке «Ошибка: (52, 12) ошибка: сущности и Pojos должны иметь открытый конструктор, который можно использовать». У вас может быть пустой конструктор или конструктор, параметры которого соответствуют полям (по имени и типу). '

Обновление 1 Мой класс SyncEntity:

/ ** * Базовый класс для всех объектов Room, которые синхронизируются. * /

@Entity
public class SyncEntity {

    @ColumnInfo(name = "created_at")
    Long createdAt;

    @ColumnInfo(name = "updated_at")
    Long updatedAt;
}

Ответы на вопрос(2)

Ваш ответ на вопрос