Kotlin和@Transient

时间:2017-11-03 08:16:21

标签: android gson kotlin realm

哈瓦上课:

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”包含非法的瞬态字段   “deliveredToServer”。 e:

     

e:java.lang.IllegalStateException:无法分析:   org.jetbrains.kotlin.kapt3.diagnostic.KaptError:错误的同时   注释处理

可能是什么问题?

1 个答案:

答案 0 :(得分:7)

3.1.3不支持瞬态字段,必须使用@Ignore明确忽略。

请参阅更改日志。

  

3.2.0(2017-05-16)

     

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