gpt4 book ai didi

Android Kotlin 创建类实现 Parcelable 在 writeToParcel 方法的 'override' 中报错

转载 作者:IT老高 更新时间:2023-10-28 13:37:56 28 4
gpt4 key购买 nike

为了使用 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: Overriding 'writeToParcel' is not allowed. Use 'Parceler' companion object instead

你能告诉我正确的方法吗?

编辑:是否只有在默认构造函数中定义的属性会被添加到 Parcel,而其他的不是?我在这个类上看到了这个警告。

PROPERTY_WONT_BE_SERIALIZED: Property would not be serialized into a 'Parcel'. Add '@Transient' annotation to remove the warning

最佳答案

确保您使用的是 kotlin 1.1.4 版本

无需重写 writeToParcel/createFromParcel 方法。除非你做任何特定的事情。工作室给你错误,但你可以忽略这个错误; Lint 检查尚未更新以了解@Parcelize。对应的 YouTrack 问题在这里:

https://youtrack.jetbrains.com/issue/KT-19300

使用创建类

enter image description here

然后像这样传递

enter image description here

找回来

enter image description here

关于Android Kotlin 创建类实现 Parcelable 在 writeToParcel 方法的 'override' 中报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46093364/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com