【发布时间】:2020-05-13 10:58:48
【问题描述】:
在我的 Android Kotlin 项目中,我有一个抽象类和一个继承抽象类的子类:
abstract class AbstractExample(
val test2: String,
val test3: String) : Parcelable
@Parcelize
class Example(
val test1: String,
test2: String,
test3: String) : AbstractExample(test2, test3)
因为我希望我的 Example 类是可打包的,所以我使用了 @Parcelize 注释。
问题是:我在Example 类中的test2 和test3 上收到以下错误:
'Parcelable' constructor parameter should be 'val' or 'var'.
为了解决这个问题,我尝试了以下方法:
abstract class AbstractExample(
open val test2: String,
open val test3: String) : Parcelable
@Parcelize
class Example(
val test1: String,
override val test2: String,
override val test3: String) : AbstractExample(test2, test3)
现在它可以编译了,但是我遇到了一个新问题:如果我想使用 Gson 将 Example 类转换为 JSON(例如,我可以将其发送到 Web 服务),那么我会收到以下错误:
Example declares multiple JSON fields named test2
然后如何修复我的两个类,以便我可以打包我的 Example 类,并且还能够使用 Gson 将其转换为 JSON?
谢谢。
【问题讨论】:
标签: android kotlin gson parcelable