gpt4 book ai didi

android - 我可以对不同的对象类型使用一个 TypeConverter 吗?

转载 作者:行者123 更新时间:2023-12-02 10:28:05 25 4
gpt4 key购买 nike

到目前为止,为了存储在房间数据库中,我一直在为每个类使用类型转换器。像这样:

@SerializedName("sidebar")
@Expose
@TypeConverters(SidebarConverter.class)
private Sidebar sidebar;
@SerializedName("splash")
@Expose
@TypeConverters(SplashConverter.class)
private Splash splash;
@SerializedName("overview")
@Expose
@TypeConverters(OverviewConverter.class)
private Overview overview;
@SerializedName("home")
@Expose
@TypeConverters(HomeConverter.class)
private Home home;
@SerializedName("portfolio")
@Expose
@TypeConverters(PortfolioConverter.class)
private Portfolio portfolio;
@SerializedName("team")
@Expose
@TypeConverters(TeamConverter.class)
private Team team;

我想知道是否有更方便的方法在数据库中单独使用一个TypeConverter

最佳答案

您可以在一个类中定义所有转换器,如下所示:

public class DateTypeConverter {

@TypeConverter
public static Date toDate(Long value) {
return value == null ? null : new Date(value);
}

@TypeConverter
public static Long toLong(Date value) {
return value == null ? null : value.getTime();
}
}

然后使用 @TypeConverter 注释在您的房间数据库上设置此转换器,就像这样,它可以在任何 @Entity 类上全局工作。您不需要定义 @TypeConverter 单独在实体类中

@Database(entities = {Product.class}, version = 1)
@TypeConverters({DateTypeConverter.class})
public abstract class MyDatabase extends RoomDatabase {
public abstract ProductDao productDao();
}

请注意,我们在数据库定义中添加了一个名为 @TypeConverters 的新注释,以便引用我们可以拥有的不同转换器(您可以用逗号分隔并添加其他转换器)。

关于android - 我可以对不同的对象类型使用一个 TypeConverter 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49398023/

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