在Android開發的一個項目中使用Parcelable,Realm和GSON可以嗎?我只是想知道如何同時實現它,因爲每個這樣的庫/框架在製作POJO時都有不同的註釋。另一個是Realm和Parcelable都堅持數據,所以我需要實現這兩個?在Android開發中使用Parcelable,Realm和GSON
0
A
回答
0
這應該是沒有問題的,因爲您可以對一個方法或一個類使用多個批註。 如果標註有相同的名字,你應該給它像@java.lang.Override
完全相同包名
1
GSON曾經有境界的詭異和需要進行以下配置
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也不提供使用訪問器來獲取數據的選項,但Realm代理不會將數據複製到內存。
如果您需要一個對象,可以通過使用@Body
註釋進行改進來發送,並且是受管理的RealmObject,當您需要執行apiService.sendObject(realm.copyFromRealm(myObject));
時。
Parcelable
沒有必要在大多數情況下RealmObject
,因爲這是由域管理的任何對象已經堅持着,並且容易獲得,只要任何地方,你有其主鍵。
但是,如果你需要數據的超然修改副本和你在使用類的非託管的情況下直接建立你打算保存對象彎曲,那麼你就可以輕鬆地創建使用Parceler庫Parcelable
類。
簡而言之:
- RealmObjects很容易持久化使用
Parceler
到Parcelable,但你通常並不需要它,你只要發送活動,而不是整個物體之間的主鍵 - GSON不適用於託管對象,因爲GSON is kinda dumb因此您需要先製作內存中的副本
就個人而言,我寧願讓我的API響應和我分開RealmModels,這是如果依靠映射更優化的架構更容易。
相關問題
- 1. Android Retrofit + Realm + Gson:串行器不叫
- 2. 在Android中使用Gson
- 3. Realm + RxJava + Android:在Android中使用RxJava保存Realm對象
- 4. 合併Realm對象和Gson對象
- 5. 何時在android中使用parcelable?
- 6. 製作GSON&Realm玩不錯
- 7. Realm和Android DataBinding
- 8. 使用realm和MVVMLight
- 9. 使用GSON反序列化包含其他Realm對象的Realm對象?
- 10. Android使用Parcelable在活動之間發送數據
- 11. Android和GSon
- 12. 如何使用Parcelable和onClickListeners?
- 13. 使用Android Realm存儲LatLng
- 14. 從Android HttpUrlConnection和Gson使用ASP.NET Web Api
- 15. 在AmfPHP中開發的Webservices - 在iOS和Android中使用?
- 16. 如何在Android中使用python開發中的kivy開發?
- 17. Realm中findFirst()的用途 - Android
- 18. 在Android開發中使用微調框
- 19. 在Android中使用XML進行開發
- 20. 在android開發中使用哪些webservices?
- 21. 在Android開發中使用Gradle
- 22. Android開發,在DatePicker中使用EditText
- 23. 在android開發中使用lambdaj庫
- 24. Gson反序列化Realm原始列表
- 25. android javax.xml.bind gson和@XmlSchemaType
- 26. Json和Gson在Android應用程序
- 27. Android parcelable error
- 28. Android Parcelable vs SQLite
- 29. Android Parcelable訂單
- 30. Android Parcelable Parcel HashMap
類,方法等可以有多個註釋。 – CommonsWare
如果我使用領域實現Parcelable會怎樣? – vidalbenjoe
怎麼樣?我沒有使用過Realm,但'Parcelable'並沒有對實現提出很多限制,所以如果Realm發生衝突,我會感到驚訝。 – CommonsWare