Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 领域-将领域对象复制到另一个领域对象类型_Android_Realm - Fatal编程技术网

Android 领域-将领域对象复制到另一个领域对象类型

Android 领域-将领域对象复制到另一个领域对象类型,android,realm,Android,Realm,我正在尝试将一个领域对象数据复制到另一个领域对象数据。不必单独设置每个属性,这是否可行?我正在执行以下操作,但应用程序只是停止响应并最终崩溃 Realm realmThread = Realm.getDefaultInstance(); PropertyObject currProperty = realmThread.where(PropertyObject.class).equalTo("propertyId", propertyId).findFi

我正在尝试将一个领域对象数据复制到另一个领域对象数据。不必单独设置每个属性,这是否可行?我正在执行以下操作,但应用程序只是停止响应并最终崩溃

Realm realmThread = Realm.getDefaultInstance();

                    PropertyObject currProperty = realmThread.where(PropertyObject.class).equalTo("propertyId", propertyId).findFirst();
                    if (currProperty != null) {
                        int propertyFollow = Integer.parseInt(params[1]);

                        realmThread.beginTransaction();
                        currProperty.setPropertyFollowed(propertyFollow);
                        realmThread.commitTransaction();

                        if (propertyFollow == 1) {
                            realmThread.beginTransaction();
                            FavoriteObject newFavProperty = realmThread.createOrUpdateObjectFromJson(FavoriteObject.class, new Gson().toJson(currProperty));
                            realmThread.commitTransaction();
编辑:

我已经更新了我的代码,它不再崩溃或停止响应,但现在当创建新对象时,属性为空。属性确实匹配,它们只是不同的对象,其中一个对象具有一些附加属性

Realm realmThread = Realm.getDefaultInstance();

                    PropertyObject currProperty = realmThread.where(PropertyObject.class).equalTo("propertyId", propertyId).findFirst();
                    if (currProperty != null) {
                        int propertyFollow = Integer.parseInt(params[1]);

                        realmThread.beginTransaction();
                        currProperty.setPropertyFollowed(propertyFollow);
                        realmThread.commitTransaction();

                        if (propertyFollow == 1) {
                            String propertyString = visnetawrap.gsonClient.toJson(currProperty);

                            realmThread.beginTransaction();
                            FavoriteObject newFavProperty = realmThread.createOrUpdateObjectFromJson(FavoriteObject.class, propertyString);
                            realmThread.commitTransaction();

                            Log.d("NewFavorite", newFavProperty.toString());
                        }

对不起,我真的不明白你的问题。你到底想做什么?将
RealmObjectA
的实例复制为
RealmObjectB
的实例?是的。RealmObjectA中的数据将被复制到RealmObjectB,但A和B是两个不同的实例。示例PropertyObject扩展RealmObject FavoriteObject扩展RealmObject。我认为在Realm中没有标准的方法来实现这一点。我想在
RealmObjectA
中创建一个静态函数,比如
copyToRealmObjectB
,它有两个参数,一个是
RealmObjectA
,另一个是
RealmObjectB
。并在静态函数中调用setter和getter进行复制。很抱歉,这看起来不是一个正常合理的要求。为什么不使用
RealmObject
字段呢?我明白了,谢谢。