gpt4 book ai didi

java - RealmObject 和 Parcelable

转载 作者:IT王子 更新时间:2023-10-29 06:22:23 24 4
gpt4 key购买 nike

我是 Android 版 Realm 的新手,所以我不确定我是否以正确的方式处理这个问题。我有一个看起来像这样的类:

public class Entry extends RealmObject implements Parcelable {
...
}

问题是 Parcelable 接口(interface)包含像 describeContents() writeToParcel() 这样的方法,而 RealmObjects 不应该有除了getter 和 setter:

Error:(81, 17) error: Only getters and setters should be defined in model classes

所以我的问题是:如何让这两者协同工作?有没有比创建一个单独的类(可能像 RealmEntry)更好的方法?这样做会导致大量重复代码...

最佳答案

2016 年 5 月更新:除非您已经使用 Parceler,否则此答案现已过时。 @Henrique de Sousa 的解决方案要好得多。


实际上,有一个解决方法。如果您愿意使用第三方库(Parceler)进行 Parcelable 生成,您可以得到您想要的结果。参见 my answer to this other question ,为方便起见在下面引用。

With Parceler v0.2.16, you can do this:

@RealmClass      // required if using JDK 1.6 (unrelated to Parceler issue)
@Parcel(value = Parcel.Serialization.BEAN, analyze = { Feed.class })
public class Feed extends RealmObject {
// ...
}

Then, use Parcels.wrap(Feed.class, feed) instead of Parcels.wrap(feed) everywhere, otherwise your app will crash with org.parceler.ParcelerRuntimeException: Unable to create ParcelableFactory for io.realm.FeedRealmProxy.

关于java - RealmObject 和 Parcelable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27231259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com