realm 不用set方法不能保存到数据库

发布于 2022-09-02 20:23:43 字数 803 浏览 24 评论 0

reealm数据库异步保存,官方提供用的是这种set赋值

RealmAsyncTask transaction = realm.executeTransactionAsync(new Realm.Transaction() {
            @Override
            public void execute(Realm bgRealm) {
                User user = bgRealm.createObject(User.class);
                user.setName("John");
                user.setEmail("john@corporation.com");
            }
        }, null);

但是我想用这种方式

public void saveRealmMapInfo(final AllInfoMapBean realmObject) {
    realm.executeTransactionAsync(new Realm.Transaction() {
        @Override
        public void execute(Realm bgRealm) {
            AllInfoMapBean allInfoMapBean = bgRealm.createObject(AllInfoMapBean.class);
            allInfoMapBean = realmObject;
        }
    });
}

存储不上,应该怎么解决

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

揽清风入怀 2022-09-09 20:23:43

好像是因为内部通过set和get方法做了操作的,你写实体如果不写get/set方法直接使用public去赋值好像都不行。

另外我看了下好像现在1.0正式版本后可以不用强制set/get了

User user = new User("John");
user.setEmail("john@corporation.com");

// Copy the object to Realm. Any further changes must happen on realmUser
realm.beginTransaction();
User realmUser = realm.copyToRealm(user);
realm.commitTransaction();

这里好像就是直接赋值实体的
https://realm.io/cn/docs/java/latest/#section-12

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文