我可以在Realm模型中定义一个未知类型的字段吗?
示例类:
public class Model1 extends RealmObject {
@PrimaryKey
private String _id;
private ? field1;
}
public class Model2 extends RealmObject {
@PrimaryKey
private String _id;
}
public class Model3 extends RealmObject {
@PrimaryKey
private String _id;
}
现在,Model1中的field1可以是Model2或Model3,它将在运行时确定。有什么方法可以实现这个目标吗?
答案 0 :(得分:1)
不,你不能这样做。 Dalinaum的评论是正确的。
实现它的一种方法是:
public class Model1 extends RealmObject {
@PrimaryKey
private String _id;
private Model2 model2;
private Model3 model3;
}
public class Model2 extends RealmObject {
@PrimaryKey
private String _id;
}
public class Model3 extends RealmObject {
@PrimaryKey
private String _id;
}
并通过;
访问它if (model1.getModel2() == null) {
Model2 model = model1.getModel2()
// do something
} else {
Model3 model = model1.getModel3()
// do something
}