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

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

存储不上,应该怎么解决

阅读 4.4k
2 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题