0

我有一堂课Message.java

public class Message extends RealmObject implements Serializable {

    @PrimaryKey
    @SerializedName("id")
    @Expose
    private Integer id;

    @SerializedName("user_id")
    @Expose
    private User user;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

}

但是,Message在 Realm 中保存对象时,我想将它们保存在不同的类名下NotificationMessage(它应该具有与类相同的所有属性和方法Message),例如:

public class NotificationMessage extends Message {

}

但这似乎不起作用。如何在NotificationMessage不复制和粘贴类的所有属性和方法的情况下创建Message类?

4

1 回答 1

1

看来您遇到了这个问题 https://github.com/realm/realm-java/issues/761

目前,Realm 不支持这种继承,但该线程中的某些人所做的是使用一个接口,该接口包含您的类共有的所有方法。

在您的特定情况下,您必须转换NotificationMessage为一个接口来保存 Message 的方法,然后 makeMessage实现NotificationMessage.

public interface NotificationMessage {


    public Integer getId() ;

    public void setId(Integer id) ;

    public User getUser() ;

    public void setUser(User user) ;

}



public class Message extends RealmObject implements Serializable, NotificationMessage {

    @PrimaryKey
    @SerializedName("id")
    @Expose
    private Integer id;

    @SerializedName("user_id")
    @Expose
    private User user;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

}
于 2017-02-17T02:09:49.177 回答