2017-09-08 6 views
3

私はレルムにかなり新たなんだと私は次のモデル存続したいと思います:このモデルを有効なRealmObjectに変換するにはどうすればよいですか?

public class ChangeEntry { 

    private int id; 
    private long time; 
    private boolean active; 
    private Set<Change> changes; 

    // getters and setters 
} 

Changeは(私は複数の実装を持っている)interfaceです:

public interface Change { 

    void performChange(); 
} 

として、私は理解しますレルムSetをサポートしていないので、次の変更を行いました:

  • は私が保存しようとすると今RealmModel

を拡張RealmObject

  • Changeを作った拡張ChangeEntryを作っRealmList<Change>
  • Set<Change>から切り替えChangeEntryレルムに、私は次のエラーを取得:

    Only concrete Realm classes are allowed in RealmLists. Neither interfaces nor abstract classes are allowed.

    これはかなりです自明である。

    このモデルをRealmに保存し、Changeインターフェイスで提供される多型性を維持できますか?もしそうなら、どうですか?

    ありがとうございます。

  • +0

    単一テーブルの継承を使用して動作する具体的なRealmObjectを手動で作成する場合(すべてのサブタイプをモデル化するのに同じオブジェクトを使用する場合) – EpicPandaForce

    答えて

    2

    Is it possible to save this model to Realm and preserve the polymorphism that the Change interface provides?

    現在のところ、レルムはまだ多型をサポートしていません。しかし、それは作業中であり、進行状況を追跡することができますhere

    今のところ、具体的なクラスのみを使用する必要があります。

    +0

    これは本当に悲しいことです。ありがとう。 – justanoob

    関連する問題