java - 在新类名下复制 Realm 类

标签 java android realm realm-java

我有一个类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;
    }

}

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

public class NotificationMessage extends Message {

}

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

最佳答案

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

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

在您的特定情况下,您必须将 NotificationMessage 转换为接口(interface)来保存 Message 的方法,然后使 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;
    }

}

关于java - 在新类名下复制 Realm 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42287999/

相关文章:

java - 刷新gradle项目时IntellIj 2018.3 java.lang.AssertionError

java - 如何在 JCalendar 中仅显示今天日期之后的日期

Android GridView 和线程等待

ios - 从字典中获取日期值

java - 安卓/Java : trim cut the latitude for map view

Java : HashSet vs. 哈希表

java - OnTouchListener JAVA 使用 Android Studio 删除限定符

java - Android 屏幕尺寸和密度。如何选择文字大小?

ios - 添加 RealmSwift 作为子项目 : Missing required modules: 'Realm.Private' , 'Realm'

android - 在同步到服务器之前要在本地 android 数据库上设置什么主键?