0

我可以在 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 类型,这将在运行时确定。有什么办法可以做到这一点?

4

1 回答 1

1

不,你不能那样做。达利纳姆的评论是正确的。

实现它的一种方法是;

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
}
于 2017-08-11T05:22:30.167 回答