android - realm 不用set方法不能保存到数据库
PHP中文网
PHP中文网 2017-04-17 17:13:42
[Android讨论组]

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;
        }
    });
}

存储不上,应该怎么解决

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
PHP中文网

已经找到答案了,谢啦
https://github.com/realm/realm-java/issues/2941#issuecomment-223914141

高洛峰

好像是因为内部通过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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号