Android開発でParcelable、Realm、GSONを1つのプロジェクトで使用することはできますか? POJOを作成するときに、これらのライブラリ/フレームワークのそれぞれに異なるアノテーションがあるため、同時に実装する方法は不思議です。もう1つはRealmとParcelableの両方でデータを保持するため、両方を実装する必要がありますか?Android開発でParcelable、Realm、GSONを使用する
答えて
これは、1つのメソッドまたは1つのクラスに対して複数の注釈を使用できるため、問題ありません。 注釈が同じ名前を持っている場合@java.lang.Override
GSONは、レルムとquirkinessを持っていたし、次の設定
Gson gson = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes f) {
return f.getDeclaringClass().equals(RealmObject.class);
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
})
.create();
GSONが読みfield reflection
を使用する必要のように、あなたはそれを正確にパッケージ名を与える必要がありますオブジェクトからのデータです。つまり、管理対象のRealmObjectsでは、フィールドはnull
の値になります。
これは、GSONではデータを取得するためにアクセサを使用するオプションも用意されていませんが、レルムプロキシはデータをメモリにコピーしないためです。
@Body
注釈を付けてRetrofitで送信できるオブジェクトが必要で、apiService.sendObject(realm.copyFromRealm(myObject));
を実行する必要がある場合は、管理対象のRealmObjectです。
Parcelable
レルムによって管理されているすべてのオブジェクトは限り、あなたはその主キーを持っているようにどこでもすでに持続し、かつ容易に入手されているので、ほとんどの場合RealmObject
のために必要ではありません。
ただし、データの変更可能なコピーを切り離して保存する必要がある場合は、クラスのアンマネージインスタンスを直接使用して保存するオブジェクトを作成することを嫌う場合は、Parcelerライブラリを使用してParcelable
クラスを簡単に作成できます。要するに
:
- はRealmObjectsは
Parceler
を使用してParcelableするように容易に永続化されていますが、一般的に、あなただけの活動ではなく、オブジェクト全体の間に主キーを送って、それを必要としません - GSONはGSON is kinda dumbなので、まずインメモリコピーを作成する必要があります。
は個人的に、私は私のAPIレスポンスを維持することを好むと私のRealmModelsを分離、それはあなたがより最適なスキーマへのマッピングに依存している場合は簡単です。
- 1. POSTメソッドを使用するAndroid GSON
- 2. アンドロイドKotlinはParcelableはParcelableを使用するにはwriteToParcel方法
- 3. Android Retrofit + Realm + Gson:シリアライザが呼び出されない
- 4. 開発用Webサービスを使用したAndroidアプリケーションの開発
- 5. Android Parcelable and Serializable
- 6. Android Parcelable Parcel HashMap
- 7. 公開用Realmデータベース?
- 8. armeabiをサポートしているAndroidプロジェクトでRealmを使用する
- 9. 開発用にAndroidでXMLを使用する
- 10. Android用開発とIOS用開発
- 11. realm-android-adapterを使用するポイントは何ですか?
- 12. RecyclerViewでRealm Androidアダプタを使用する方法
- 13. AndroidキーストアからSecretKeyを取得し、Realm IOで使用する
- 14. android studio 3でrealm gradle pluginを使用する
- 15. Android - FirebaseMessagingServiceクラス(非活動)でRealmを使用する方法
- 16. AndroidでGSONを使用してJSON文字列をデシリアライズする
- 17. Androidユーザーオブジェクトparcelable問題
- 18. Android開発エラー、Eclipseを使用
- 19. Androidネイティブ開発 - ブートストラップテーブルグリッドを使用
- 20. Android開発でBitmapとByte []を使用するタイミングは?
- 21. 外出先での開発にAndroid携帯を使用する
- 22. Android開発用にPythonを使用できますか?
- 23. 使用Parcelableは別の
- 24. 使用既存のデータベース - Androidの開発
- 25. Androidの開発:インテント構文の使用
- 26. Android Realmを使用してLatLngを保存する
- 27. Android用ゲーム開発用オープンソース
- 28. Realm + RxJavaでジェネリックを使用する
- 29. Android App開発で使用するグラフィックエディタプログラムのアドバイスが必要
- 30. Android用Realmの直接フィールドアクセス
クラス、メソッドなどは、複数の注釈を持つことができます。 – CommonsWare
Parcelableをレルムで実装するとどうなりますか? – vidalbenjoe
どうやって?私はRealmを使用していませんが、Parcelableは実装に多くの制限を設けていないので、Realmが矛盾していれば驚くでしょう。 – CommonsWare