在我的应用程序中,我使用领域作为数据库平台.到目前为止,Realm一直很棒 – 超级易于使用,进行查询等等 – 但是,我有两个问题,我正在尝试解决这个问题.
1)Realm不支持扩展RealmObject的模型对象类中的继承.
– 我想知道是否有任何开发人员使用组合作为继承问题的解决方法,如果它适用于他们.
– 换句话说,我说有一个类“汽车”,它扩展了RealmObject,然后我有其他类,如“本田”,“丰田”等.是否有必要为每个包含任意一个的汽车对象制作本田,丰田等?
2)Realm仅支持模型对象类中的getter和setter
– 我目前的解决方法是在模型对象类中创建静态方法.
– 换句话说,我想修改本田的颜色,我会称之为Honda.updateColor(本田,蓝色).
– ^这是草率的,或者这实际上是处理这些方法的唯一方法.
真的任何反馈都会很棒!
最佳答案 我使用过的解决方法(简而言之)
组合接口继承将允许您将一些多态性好处带回到realmObjects.
一些代码演示
interface IPerson {
String getName();
}
class Person extends RealmObject implements IPerson {
String name;
@Override
public String getName() {
return name;
}
}
interface IWorker extends IPerson {
int getSalary();
}
class Worker extends RealmObject implements IWorker {
Person person;
int salary;
@Override
public String getName() {
return person.getName();
}
@Override
public int getSalary() {
return salary;
}
}
注意
不幸的是,PrimaryKeys必须重复.
检查我的answer以获得有关此变通方法的更多详细信息.