RealmDB自定义字段

时间:2017-04-18 06:18:59

标签: android realm realm-java

我可以在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,它将在运行时确定。有什么方法可以实现这个目标吗?

1 个答案:

答案 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
}