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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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_Null_Realm_Relation - Fatal编程技术网

Android 领域关系字段始终为空

Android 领域关系字段始终为空,android,null,realm,relation,Android,Null,Realm,Relation,以下是我的模型: public class RChat extends RealmObject { @PrimaryKey private String Id; private RMyTest Test; public RChat() {} } 及 我用的是这样的: mRealm = Realm.getInstance(this); mRealm.beginTransaction(); final

以下是我的模型:

public class RChat extends RealmObject {
    @PrimaryKey
    private String              Id;
    private RMyTest Test;

    public RChat() {}
}

我用的是这样的:

mRealm = Realm.getInstance(this);


        mRealm.beginTransaction();
        final RChat chat = mRealm.createObject(RChat.class);
        chat.setId("test");
        RMyTest rProfile = mRealm.createObject(RMyTest.class);
        rProfile.setMyName("alireza test");
        chat.setTest(rProfile);
        //mRealm.copyToRealmOrUpdate(chat);
        mRealm.commitTransaction();

        RChat chat1 = mRealm.where(RChat.class).equalTo("Id","test").findFirst();

但是chat1对象的测试字段总是空值。如何解决此问题?

代码看起来正确。如果通过在调试窗口中检查chat1的测试字段得到null,那么将得到一个null值。这是意料之中的

Realm将生成一个代理类并覆盖代理类中的getter/setter。所以如果你尝试

RMyTest rProfile = chat1.getTest();
我确信您可以得到相应的RMyTest对象,而不是null


这种行为是有文档记录的。

我一直认为我的对象不能直接为null,但重点是Realm使用模型代理,而代理实际上不是null。

附带说明,如何在没有RealmObjects的setter和getter的情况下编译代码?顺便说一句,您的代码对我来说很好。同样的问题。你找到解决办法了吗?@toidiu我发布了答案。请检查一下。使用getter有帮助。互联网上唯一帮助我的答案!
RMyTest rProfile = chat1.getTest();