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

2024-02-10

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

@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在我们的数据库定义中,以便引用我们可以拥有的不同转换器(您可以用逗号分隔并添加其他转换器)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以对不同的对象类型使用一个 TypeConverter 吗? 的相关文章

随机推荐

  • 为什么从对象继承在 Python 中会有所不同? [复制]

    这个问题在这里已经有答案了 当类从无继承时 我有一个实例类型的对象 gt gt gt class A pass gt gt gt a A gt gt gt type a
  • 将 AVAssetWriter 与原始 NAL 单元结合使用

    我在 iOS 文档中注意到AVAssetWriterInput你可以通过nil为了outputSettings字典来指定输入数据不应重新编码 用于对附加到输出的媒体进行编码的设置 传递 nil 来指定不应重新编码附加的样本 我想利用此功能来
  • 如何为TableView创建NSIndexPath

    我需要在我定义的函数中删除表的第 1 行 为了使用deleteRowAtIndexPath你必须使用一个IndexPath定义了部分和行 如何创建这样的索引路径 以 int 1 作为唯一成员的数组将会崩溃 NSLog 消息指出该部分也需要定
  • pandas 按日期和年份分组并汇总金额

    我有这样的熊猫数据框 d dollar amount 200 25 350 00 120 00 400 50 1231 25 700 00 350 00 200 25 2340 00 date 22 01 2010 22 01 2010 2
  • 调试时如何跳出while循环

    在 Eclipse 中调试期间 我的代码进入了 while 循环 我不想循环直到满足条件 所以请告诉我如何在调试期间退出 while 循环 我看到 F7 在调试菜单下被禁用 请参阅此处的屏幕截图 You can select the lin
  • javascript 函数 btoa 的 C# 版本

    我需要将一些内容从 js 重新编码为 c 利用 js 中的 btoa 方法对一串 unicode 字符将它们转换为 base64 但是 据我所知 javascrpt 使用的编码与 c 中可用的所有编码不同 我需要编码完全相同 并且不会在这些
  • 如何在perl中验证数字?

    我知道有一个图书馆可以做到这一点 使用 Scalar Util qw looks like number 但我想使用 perl 正则表达式来做到这一点 我希望它适用于双数 而不仅仅是整数 所以我想要比这更好的东西 var d thanks
  • 从 OKHTTP 下载二进制文件

    我在我的 Android 应用程序中使用 OKHTTP 客户端进行网络连接 This https stackoverflow com questions 25367888 upload binary file with okhttp fro
  • Xpath获取上面的元素

    假设我有这样的结构 div class a div class b span Text Example span div div 在 xpath 中 我想检索属性 attribute 的值 因为我里面有文本 文本示例 如果我使用这个 xpa
  • 如何在VBA中实现消失动画?

    我正在尝试在 VBA 过程中测试形状上的动画效果 我已经实现了一个目标 即在主序列 定义在哪个位置Timeline 但我无法创建消失的动画 我在代码的开头检查了一些已经存在的 并且 EffectType 似乎返回与相关出现的动画相同的值 因
  • 实现永不过期的 OAuth 刷新令牌

    在 OAuth 2 的上下文中 如何处理refresh token过期 还是缺少 我使用 JSON Web 令牌 JWT 作为access token生命周期较短 20 分钟后过期 据我了解 这意味着我不必存储access token 仅验
  • 带标头的 post 请求中出现错误 411(需要长度),但标头具有 Content-Length。库卷曲

    我使用这个选项 curl easy setopt curl CURLOPT URL urlUpload curl easy setopt curl CURLOPT ERRORBUFFER errorBuffer curl easy seto
  • SQLite 自动增量不起作用

    好吧 这不是垃圾邮件 它应该很简单 我不知道为什么它不起作用 这是我的代码 gamesdatabase openOrCreateDatabase GamesDatabase MODE PRIVATE null gamesdatabase e
  • 获取数组中的所有非唯一值(即:重复/多次出现)

    我需要检查 JavaScript 数组以查看是否存在重复值 做到这一点最简单的方法是什么 我只需要找到重复的值是什么 我实际上不需要它们的索引或它们重复了多少次 我知道我可以循环遍历数组并检查所有其他值是否匹配 但似乎应该有一种更简单的方法
  • 保存和加载数据“MVVM”方式?

    我目前正在使用 Telerik 提供的一些控件开发一个 C WPF 项目 并且我尊重 MVVM 模式 包含数据的模型 将数据呈现给 View 的 ViewModel 显示数据的视图 当然 某些模型可以重用并显示在多个视图中 在我的例子中 数
  • ChangeDetectionStrategy.OnPush 的行为不符合我的预期

    我正在尝试熟悉 Angular 2ChangeDetectionStrategy OnPush性能提升 如所解释的here https blog thoughtram io angular 2016 02 22 angular 2 chan
  • 在执行之前使 CMake 打印命令

    我正在开发一个在 Linux 上使用 CMake 构建的大型 C 项目 CMake 运行正常 在模块和应用程序树中生成大量 Makefile 运行 GNUmake导致链接器错误 我怎样才能得到make在运行之前打印出确切的命令 d 选项不打
  • 使用 JPA 和 Google App Engine 更新查询

    我正在尝试更新我的实体类 但我得到 javax persistence PersistenceException Only select and delete statements are supported 当我不使用 Google 应用
  • Extjs:使用提交表单上传文件

    我正在尝试使用 ExtJs 和 Spring 上传文件 excel 但没有成功 所以我希望你能帮助我 在面板中 我有一个按钮 文件上传字段 我可以通过该按钮选择一个要上传的文件 xtype fileuploadfield buttonOnl
  • 我可以对不同的对象类型使用一个 TypeConverter 吗?

    到目前为止存储在房间数据库我一直在为每个类使用类型转换器 像这样 SerializedName sidebar Expose TypeConverters SidebarConverter class private Sidebar sid