我开始使用Kotlin并尝试实现一个可接受的对象,该对象接收字符串列表作为辅助构造函数的参数。然而,我发现了错误:创建一个Parcelable类与一个辅助构造函数,该函数将一个列表作为Kotlin中的参数
Cannot access '< this >' before super class constructor has been called
这里是我的代码:
class StringChecker(val stringList : List<String>) : Parcelable {
var mStringList = stringList
constructor(parcel: Parcel) : this(parcel.readStringList(mStringList))
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeStringList(mStringList)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<StringChecker> {
override fun createFromParcel(parcel: Parcel): StringChecker {
return StringChecker(parcel)
}
override fun newArray(size: Int): Array<StringChecker?> {
return arrayOfNulls(size)
}
}
}
我明白,我不能创建对象之前调用成员变量mStringList和那当然是有道理的,但是readStringList方法需要一个字符串列表参数。我该如何解决这个问题?这是我的设计parcelable vs采取list作为构造参数的问题?
它很有意义。会试试这个。 – alexm