qua*_*kid 11 android parcelable kotlin
要使用Parcelable,我已经关注了此版本的Kotlin 1.1.4:https://blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out/
在项目中添加此行
androidExtensions {
experimental = true
}
Run Code Online (Sandbox Code Playgroud)
然后定义一个类:
@Parcelize
class User(val firstName: String, val lastName: String) : Parcelable
Run Code Online (Sandbox Code Playgroud)
writeToParcel()和createFromParcel()方法是自动创建的
override fun writeToParcel(parcel: Parcel, flags: Int) {
...
}
Run Code Online (Sandbox Code Playgroud)
但仍然在'override'关键字中出现错误消息
OVERRIDING_WRITE_TO_PARCEL_IS_NOT_ALLOWED:不允许覆盖'writeToParcel'.请改用"Parceler"伴侣对象
你能告诉我正确的方法吗?
编辑: 只有默认构造函数中定义的属性是否会添加到Parcel,而其他属性不是?我在这节课中看到了这个警告.
PROPERTY_WONT_BE_SERIALIZED:属性不会被序列化为"包裹".添加"@Transient"注释以删除警告
确保您使用的是Kotlin 1.1.4版本
无需覆盖writeToParcel / createFromParcel方法。除非您做任何特定的事情。工作室会给您错误,但您可以忽略此错误;皮棉检查尚未更新以了解@Parcelize。相应的YouTrack问题在这里:
https://youtrack.jetbrains.com/issue/KT-19300
使用创建类
然后像
找回来
你可以安全地忽略警告,因为它只是lint检查.
现在要摆脱它只是使用@SuppressLint("ParcelCreator")
例如:
@SuppressLint("ParcelCreator")
@Parcelize
class User(val firstName: String, val lastName: String) : Parcelable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3905 次 |
| 最近记录: |