我有一个班级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 {
}
但这似乎不起作用。如何在不复制和粘贴NotificationMessage
类的所有属性和方法的情况下创建Message
类?
答案 0 :(得分:1)
您似乎遇到了这个问题 https://github.com/realm/realm-java/issues/761
目前,Realm并不支持这种继承,但该线程中的某些人所使用的是使用一个接口,该接口包含您的类通用的所有方法。
在您的特定情况下,您必须将NotificationMessage
转换为接口以保存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;
}
}