gpt4 book ai didi

java - RealmModel 实现类需要仅通过 getter/setter 使用的字段吗?

转载 作者:行者123 更新时间:2023-12-01 09:14:53 25 4
gpt4 key购买 nike

我正在通过 Realm 实现我的单一登录用户。每次 API 调用返回一个用户对象时,我都会使用如下内容将用户保存到数据库中:

realm.beginTransaction();
realm.createOrUpdateObjectFromJson(UserModel.class,jsonObject);
realm.commitTransaction();

我有一个名为 loadUser() 的中心函数它加载保存的对象,如下所示:

private void loadUser(){
currentUser = realm.where(UserModel.class).findFirst();
}

哪里currentUser显然是我的单例中的成员变量。

这工作得很好,直到我尝试引用对象属性为止。我几乎使用 RealmModel实现UserModel像 POJO 一样的类,但连接了智能方法,可以返回头像等的智能值。我开始注意到生成的 UserModelProxy当我在 Debug模式下检查对象时,对象没有设置值,即使当我打开它并使用 RealmBrowser 应用程序在 OSX 上浏览它时数据库设置了值。

  • 我可以看到数据库中的值。
  • 我看不到调试器中的值。
  • 我的if当我尝试直接使用这些值时,条件失败。

我刚刚更改了所有代码以创建字段 private ,并通过生成的 getter 和 setter 函数使用它们,这些函数只是直接访问变量。这些有效!

我做错了什么吗,还是realm java文档没有提到我需要生成它们生成的Proxy类将覆盖的getter和setter函数?

最佳答案

我正在使用最新版本的 Realm (2.2.0),经过更多代码调试,事实证明我错了,问题出在 我的 if 条件上,而不是 Realm数据库。

不过,我想使用 getter/setter 确实有意义。无论 magic Realm 对生成的代理模型类做什么,它都不会转化为调试器中的检​​查。知道我们应该使用 getter 和 setter 后,我们就可以在 Android Studio 调试器中进行检查时获得正确的值。

关于java - RealmModel 实现类需要仅通过 getter/setter 使用的字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40630985/

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