RealmDB 自定义字段

RealmDB custom fields

我可以在 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 类型,这将在运行 时间内确定。有什么办法可以实现吗?

不,你不能那样做。 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
}