gpt4 book ai didi

android - 房间 ORM 枚举类型转换器错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:40:52 29 4
gpt4 key购买 nike

我不断收到以下错误:

Cannot figure out how to save this field into database. You can consider adding a type converter for it.

我已将 @TypeConverter 添加到一对转换器方法中,并在我的数据库类上添加了 @TypeConverters 注释。

DownloadItem.java

  @Entity(tableName = "downloads")
public class DownloadItem implements Serializable {

public enum DownloadStatus {
None(0),
Downloading(1),
Suspended(2),
Completed(3),
Deleted(4),
Expired(5);

private final int numeral;

@TypeConverter
public static DownloadStatus getDownloadStatus(int numeral){
for(DownloadStatus ds : values()){
if(ds.numeral == numeral){
return ds;
}
}
return null;
}

@TypeConverter
public static Integer getDownloadStatusInt(DownloadStatus status){
return status.numeral;
}

DownloadStatus(int num){
this.numeral = num;
}
}

@TypeConverters(DownloadStatus.class)
@ColumnInfo(name = "download_status")
public DownloadStatus downloadStatus;

@PrimaryKey
@NonNull
private int contentId;

@Ignore
public DownloadItem() {
}

public DownloadItem(DownloadStatus downloadStatus, int contentId) {
this.downloadStatus = downloadStatus;
this.contentId = contentId;
}
}

下载数据库.java

    @Database(entities = {DownloadItem.class}, version = 1)
@TypeConverters({DownloadItem.DownloadStatus.class, PlayerType.class})
public abstract class DownloadDatabase extends RoomDatabase {

public abstract DownloadItemStore downloadItemStore();

private static final String DB_NAME = "download.db";
.......
}

最佳答案

getDownloadStatusInt 应该是int,不是Integer

关于android - 房间 ORM 枚举类型转换器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47435686/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com