2017-04-18 88 views
0

我可以在Realm模型中定义具有未知类型的字段吗?RealmDB自定义字段

样品类:

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; 
    } 

现在,型号1的字段1的类型可以是模型2或Model3这将在运行时间来确定的。有什么办法可以做到这一点?

+1

境界好好尝试一下支持'类'。有关更多详细信息,请参阅官方文档:https://realm.io/docs/java/latest/#field-types – Dalinaum

+0

是的,我知道。请求类似的实现。总之编辑 –

+0

'field1'应该只是原始类型,盒装类型,特定的Realm Object或RealmLists中的一种。它有时不能成为Model2,Model3有时候不能。 – Dalinaum

回答

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 
}