gpt4 book ai didi

android-studio - Kotlin - 可解析类型不匹配 : Required: String, 找到 : String?

转载 作者:行者123 更新时间:2023-12-02 19:41:00 25 4
gpt4 key购买 nike

编译器给我错误类型不匹配:必需:字符串,找到:字符串?Parcelable 数据类的构造函数内的 parcel.writeString(firstName)parcel.writeString(lastName)

这是我的类(class)。

data class Mouse(
val firstName: String,
val lastName: String,
val age: Int ) : Parcelable {
constructor(parcel: Parcel) : this(
parcel.readString(),
parcel.readString(),
parcel.readInt()
)

override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(firstName)
parcel.writeString(lastName)
parcel.writeInt(age)
}

override fun describeContents(): Int {
return 0
}

companion object CREATOR : Parcelable.Creator<Mouse> {
override fun createFromParcel(parcel: Parcel): Mouse {
return Mouse(parcel)
}

override fun newArray(size: Int): Array<Mouse?> {
return arrayOfNulls(size)
}
}}

我不明白为什么会出现错误以及如何纠正它。

最佳答案

实际上,您的错误是由其他行引起的。 parcel.readString() 返回 String?,并且您尝试将其作为 firstName 参数传递给主构造函数,该参数具有 String 类型。要修复此问题,您可以例如在返回的字符串为 null 时传递默认值:

constructor(parcel: Parcel) : this(
parcel.readString() ?: "",
parcel.readString() ?: "",
parcel.readInt()
)

关于android-studio - Kotlin - 可解析类型不匹配 : Required: String, 找到 : String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60141943/

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