web-dev-qa-db-ja.com

Androidの文字列タイプのRealmList

AndroidのローカルストレージにRealmを使用しています。次の応答フォームサーバーを取得しています。

[{
    "ListId": 10,
    "Names": ["Name1", "Name2", "Name3", "Name4"]
}]

こちらが私のモデルです

   public class Model extends RealmObject {

    private int ListId;
    private RealmList<String> Names = new RealmList<String>()

    public int getListId() {
        return ListId;
    }

    public void setListId(int listId) {
        ListId = listId;
    }

    public RealmList<String> getNames() {
        return Names;
    }

    public void setNames(RealmList<String> names) {
        Names = names;
    }

}

そして、私はArrayListのためにこれを取得しています

型パラメーター 'Java.lang.String'はその範囲内にありません。 「io.realm.RealmObject」を拡張する必要があります。

ありがとう。

12
user2566484

Realmバージョン4.0.0では、String、byte []、Boolean、Long、Integer、Short、Byte、Double、Float、Dateの値を含むRealmListのサポートが追加されます。

このプルリクエストを参照してください。

https://github.com/realm/realm-Java/pull/5031

そして、レルムの変更ログ:

https://github.com/realm/realm-Java/blob/master/CHANGELOG.md

6
Yayo Arellano

RealmListsは、単純な文字列をまだサポートしていません。したがって、各文字列を独自のオブジェクトにラップする必要があります。

次の回避策を見ることができます: Gson deserialization of List <String> to realmList <RealmString>

またはここ: https://realm.io/docs/Java/latest/#primitive-lists

14

はい、それはレルムからの制限であり、文字列の配列またはリストを作成できません。次のリンクを参照してください

https://github.com/realm/realm-Java/issues/575

1
Master