0

我在构建具有自定义类的领域对象时遇到问题。

@Parcel(
    value = Parcel.Serialization.BEAN,
    analyze = { Message.class })

@RealmClass
public class Message implements Comparable<Message>, RealmModel {`

@PrimaryKey
@Index
private long id;
@JsonProperty("thread_id")
long threadId;
@JsonProperty("message")
public String message;
@JsonProperty("user")
public User user;
...
}

当服务器发送 json 响应时,尝试解析为 Message 领域对象

realm.createObjectFromJson(MesssageMessage.class, JSONObject)

问题是用户。我有一个编译错误“不支持归档用户”。

下面是不是领域对象的用户类。

@JsonIgnoreProperties("incomplete_signed_up")
public class User implements KeepClassFromProguard, Parcelable {
public static final Parcelable.Creator<User> CREATOR = new
Parcelable.Creator<User>() {


    @Override
    public User createFromParcel(Parcel in) {
        return new User(in);
    }

    @Override
    public User[] newArray(int size) {
        return new User[size];
    }
};

public long id;
@JsonProperty("account_id")
private long accountId;
@JsonProperty("display_name")
public String display_name;
@JsonProperty("nick_name")
public String nickname;
@JsonProperty("user_detail")
public UserDetail userDetail;

...
}

我阅读了https://gist.github.com/cmelchior/ddac8efd018123a1e53ahttp://parceler.org/#getting_parceler,但我还没有得到答案。我不能将每个类都更改为领域对象,因为它们都有另一个自定义类。

有谁知道这是如何处理的?希望有什么好的例子。谢谢。

4

1 回答 1

1

a 中的所有引用都RealmModel必须引用其他RealmModel类。这是我们可以持久化它们的唯一方法。

您可以@Ignore使用该user字段,但 Realm 不会保存该字段。

于 2017-09-21T06:39:00.757 回答