Android Kotlin创建类实现Parcelable在writeToParcel方法的“覆盖”中给出一个错误
为了使用Parcelable,我遵循了Kotlin 1.1.4的这个版本: https : //blog.jetbrains.com/kotlin/2017/08/kotlin-1-1-4-is-out/
在项目中添加这一行
androidExtensions { experimental = true }
然后定义一个类:
@Parcelize class User(val firstName: String, val lastName: String) : Parcelable
writeToParcel()和createFromParcel()方法是自动创建的
override fun writeToParcel(parcel: Parcel, flags: Int) { ... }
但是在消息的“覆盖”关键字中仍然存在错误
OVERRIDING_WRITE_TO_PARCEL_IS_NOT_ALLOWED:不允许覆盖“writeToParcel”。 改为使用“Parceler”随播对象
你能告诉我正确的方法吗?
编辑:只有默认构造函数中定义的属性将添加到包,其他不是? 我在这堂课看到这个警告。
PROPERTY_WONT_BE_SERIALIZED:属性不会被序列化为“包裹”。 添加“@Transient”注释以删除警告
确保你使用的是kotlin 1.1.4版本
无需重写writeToParcel / createFromParcel方法。 除非你做任何特定的事情。工作室给你错误,但你可以忽略这个错误; 皮棉检查尚未更新了解@Parcelize。 相应的YouTrack问题在这里:
https://youtrack.jetbrains.com/issue/KT-19300
使用创建类
然后通过它像
把它弄回来
你可以放心地忽略警告,因为它只是检查。
现在摆脱它只是使用@SuppressLint("ParcelCreator")
例如:
@SuppressLint("ParcelCreator") @Parcelize class User(val firstName: String, val lastName: String) : Parcelable