我遇到了一个奇怪的问题。我有一个在kotlin中实现Parcelable接口的类A.Kotlin从意图捆绑getParcelableArray无法将其转换为自定义类型
我将类A的数组从一个活动传递给另一个没有问题的地方。
var arrayOfA:Array<A> // just to tell the type assume the array is initialised with the value
intent.putExtra("array", arrayOfA)
不过,虽然在另一个活动接受它,我不能把它分配给数组类型的变量,它要求我把它分配给磁盘阵列当是类型parcelable为什么我不能给它分配变量。
in second Activity
var arrayOfA:Array<A>?=null
arrayA=intent.get("array") as Array<A> // Problem here. Class cast exception
我无法理解为什么。有人能帮助我吗?我不想将变量类型更改为Array,因为它与许多相互依赖关系一样(此类仅为演示)
================= =======================
class A(val a:String?,val b:String?):Parcelable {
constructor(parcel: Parcel) : this(
parcel.readString(),
parcel.readString()) {
}
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(a)
parcel.writeString(b)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<A> {
override fun createFromParcel(parcel: Parcel): A {
return A(parcel)
}
override fun newArray(size: Int): Array<A?> {
return arrayOfNulls(size)
}
}
}
你真的需要类A添加到的问题。没有它,它很难回答 – Zoe
请参阅编辑 –