【问题标题】:kotlin + parceler + Realmkotlin + parceler + 领域
【发布时间】:2017-11-03 09:50:49
【问题描述】:

我正在尝试将 Parceler 库与 Realm 集成到 Kotlin 项目中,但是当我尝试使实体适应 Realm 和 Parcel 时遇到了问题。

@Parcel(implementations = { EventRealmProxy::class.java },
        value = Parcel.Serialization.BEAN,
        analyze = { Event::class.java })
@RealmClass
open class Event : Serializable, RealmObject(){

    open var dislike : Boolean = false
    open var like : Boolean = false
    open var blocked : Boolean = false
    open var visits : Boolean = false

}

这是错误:

错误:(13, 19) 类型不匹配:推断类型为 () -> Class but Array> 是预期的

我正在尝试在 Kotlin 中查找使用 Realm 和 Parceler 定义的类的一些示例。

提前感谢您的帮助。

问候。

【问题讨论】:

    标签: kotlin realm parceler


    【解决方案1】:

    我稍微修改了您的代码。你可以试试这个吗?

    @Parcel(implementations = arrayOf(EventRealmProxy::class.java),
            value = Parcel.Serialization.BEAN,
            analyze = arrayOf(Event::class))
    @RealmClass
    open class Event : Serializable, RealmObject(){
    
        open var dislike : Boolean = false
        open var like : Boolean = false
        open var blocked : Boolean = false
        open var visits : Boolean = false
    
    }
    

    我不在我的个人电脑上,所以我无法运行代码。如果它不工作很抱歉浪费你的时间。当我有时间时,我会尝试改进我的答案。

    【讨论】:

    • 感谢您的回答,但不幸的是不起作用。这些是错误:Error:(11, 27) Only 'const val' can be used in constant expressions Error:(11, 35) Unresolved reference: EventRealmProxy Error:(11, 35) An annotation parameter must be a compile-time constant Error:(13, 19) Type inference failed. Expected type mismatch: inferred type is Array<Class<Event>> but Array<KClass<(raw) Any>> was expected
    • 我编辑了我的答案。您应该将完整的日志记录到您的问题中,以提供有关您的问题的更多信息。
    • 这是您的 las 建议的错误:e: /Users/sami/StudioProjects/project/dat-core-android/datcorelibrary/src/main/java/com/reto/datcorelibrary/model/Event.kt: (24, 27): Only 'const val' can be used in constant expressions e: /Users/sami/StudioProjects/project/dat-core-android/datcorelibrary/src/main/java/com/reto/datcorelibrary/model/Event.kt: (24, 35): Unresolved reference: EventRealmProxy e: /Users/sami/StudioProjects/project/dat-core-android/datcorelibrary/src/main/java/com/reto/datcorelibrary/model/Event.kt: (24, 35): An annotation parameter must be a compile-time constant
    【解决方案2】:
    @Parcel(implementations = { EventRealmProxy::class.java },
    

    应该是

    @Parcel(implementations = [EventRealmProxy::class.java],
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多