Android doesn’t support model inheritance/polymorphism上的Realm.
那么有没有办法在Android上分享字段?我们有5个模型,它们共享相同的同步相关字段和代码.我们在当前的SQLite模型中使用继承;如果我们切换到Realm,我们唯一的选择是在5个模型类中的每一个上复制同步字段吗?
作为一种解决方法,我正在考虑让这些类为共享字段实现具有getter和setter的Syncable接口,这至少让我共享同步功能.有没有更好的办法?
为了共享同步功能,我最好的猜测是创建一个静态Synchronizer类并传递它的Syncable模型对象. Synchronizer方法将使用Syncable接口直接在模型对象的共享,同步相关字段上操作,并在特定于类型的字段上委托操作.或者,我可以为每个模型对象提供自己的Synchronizer实例…
试图找到解决继承限制的正确方法,实际上是在扩展我的OOP技能……非常感谢帮助!
解决方法:
如果您使用Kotlin,通过界面共享字段变得更加微不足道:
interface PersonBase {
var name: String?
var salary: Int
}
然后
class Person: RealmObject(), PersonBase {
}