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