2017-04-18 32 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 
}