【问题标题】:Kotlin and @TransientKotlin 和 @Transient
【发布时间】:2017-11-03 08:16:20
【问题描述】:

有一个类:

open class MessageDTO : RealmObject, Serializable {

    @PrimaryKey
    @SerializedName("message_id")
    var messageId: String? = null

    @SerializedName("chat")
    var chat: String? = null

    @SerializedName("chat_type")
    var chatType: String? = null

    @SerializedName("content")
    var content: ContentDTO? = null

    @SerializedName("created")
    var created: Date? = null

    @SerializedName("from")
    var from: String? = null

    @SerializedName("important")
    var important: Boolean? = null

    @SerializedName("is_first")
    var isFirst: Boolean? = null

    @SerializedName("is_group")
    var isGroup: Boolean? = null

    @SerializedName("is_last")
    var isLast: Boolean? = null

    @SerializedName("linked_messages")
    var linkedMessages: RealmList<MessageDTO>? = null

    @SerializedName("links")
    var links: RealmList<ModelLinks>? = null

    @SerializedName("read")
    var read: Boolean? = null

    @SerializedName("to")
    var to: String? = null

    @Ignore
    var displayName: String? = null

    @Ignore
    var authorPhoto: ModelIcons? = null

    @Transient
    var deliveredToServer: Boolean = false

并且需要使用@Transient 和变量deliveredToServer 但有编译错误:

e:错误:“MessageDTO”类包含非法瞬态字段 “交付给服务器”。 e:

e: java.lang.IllegalStateException: 分析失败: org.jetbrains.kotlin.kapt3.diagnostic.KaptError:出错时 注释处理

可能是什么问题?

【问题讨论】:

  • 你可以试试@field:[Transient]看看它是否有效?
  • 这是什么版本的 Realm?
  • @EpicPandaForce 3.1.3
  • @Joshua 我会试试的

标签: android gson kotlin realm


【解决方案1】:

瞬态字段在 3.1.3 中不受支持,必须使用 @Ignore 显式忽略。

查看更改日志。

3.2.0 (2017-05-16)

模型类中现在允许瞬态字段,但被隐式视为具有 @Ignore 注释 (#4279)。

【讨论】:

    猜你喜欢
    • 2018-10-31
    • 2021-05-22
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 2019-06-06
    • 2018-05-22
    相关资源
    最近更新 更多