Kotlin和@Transient

一堂课:

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与变量@Transient但有编译错误:

e:错误:类“MessageDTO”包含非法瞬态字段“deliveredToServer”。 E:

e:java.lang.IllegalStateException:未能分析:org.jetbrains.kotlin.kapt3.diagnostic.KaptError:批注处理时出错

可能是什么问题呢?

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

查看更改日志。

3.2.0(2017-05-16)

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