2017-04-18 7 views
0

レルムモデルでタイプが不明なフィールドを定義できますか?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; 
    } 

、MODEL1におけるフィールド1には、実行時に決定されますタイプモデル2かのMODEL3のものとすることができます。私はこれを達成する方法はありますか?

+1

レルムは、「クラス」をサポートしていません。詳細については、公式文書を参照してください:https://realm.io/docs/java/latest/#field-types – Dalinaum

+0

ええ、私はそれを知っています。同様の実装を求めるとにかく質問 –

+0

を編集しました。 'field1'は、プリミティブ型、ボックス型、特定のレルムオブジェクトまたはRealmListsのうちの1つでなければなりません。 Model2とModel3を時々一緒に使うことはできません。 – Dalinaum

答えて

1

いいえ、できません。 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 
} 
関連する問題