在新班级名称下复制领域类



我有一个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对象保存在领域中时,我想以不同的类名为NotificationMessage(应具有与Message类相同的属性和方法)保存,例如:

public class NotificationMessage extends Message {
}

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

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

当前,领域不支持这种继承,但是该线程中的某些人所做的就是使用一个界面,该界面容纳您的类别。

在您的特殊情况下,您必须将NotificationMessage转换为接口以保存消息的方法,然后使Message实现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;
    }
}

最新更新