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