首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kotlin - realm和parcel

kotlin - realm和parcel
EN

Stack Overflow用户
提问于 2016-08-12 12:59:34
回答 2查看 1.2K关注 0票数 3

我用android studio开发android项目。我想在kotlin中使用onSaveInstanceState()保存realm对象。我的代码是

代码语言:javascript
复制
@Parcel( implementations = arrayOf(UserRealmProxy::class),
         value = Parcel.Serialization.BEAN,
         analyze = arrayOf(User::class))
open class User : RealmObject() {
    open var name: String? = null

    @ParcelPropertyConverter(ListParcelConverter::class)
    open var Items: RealmList<Item>? = null
}

但是在编译过程中会出现一些错误:

代码语言:javascript
复制
'Unresolved reference: UserRealmProxy'
'An annotation parameter must be a compile-time constant'

当然,UserRealmProxy已经存在了,因为项目已经被编译了。此外,@ParcelPropertyConverter(ListParcelConverter::class)也不起作用。它会在运行时导致异常:

代码语言:javascript
复制
'java.io.NotSerializableException: io.realm.RealmList'

但这段代码在java中编译得很好。

我需要你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2016-11-11 17:14:07

您可能会注释到setter。请试一下这个。

代码语言:javascript
复制
@Parcel( implementations = arrayOf(UserRealmProxy::class),
     value = Parcel.Serialization.BEAN,
     analyze = arrayOf(User::class))
open class User : RealmObject() {
    open var name: String? = null
    open var Items: RealmList<Item>? = null
    @ParcelPropertyConverter(ListParcelConverter::class) set
}
票数 0
EN

Stack Overflow用户

发布于 2019-03-12 20:26:23

在我的例子中,当我遇到这个错误时:‘未解析的引用: UserRealmProxy’。如果我有这个包: com.path.model.Album,我必须使用:

代码语言:javascript
复制
import io.realm.com_path_model_AlbumRealmProxy

...
@Parcel(implementations = arrayOf(com_path_model_AlbumRealmProxy::class)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38910246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档