如何解决在一个类中同时使用 Parcelable 类和 Serializable
我有类 Data 和一些属性,其中一个属性是一个实现 Serializable 的类,另一个实现 Parcelable,其他属性是字符串。
我想让这个类(数据)实现可序列化。
在序列化具有实现 Parcelable 但未实现 Serializable 的属性的 Data 类过程中是否有任何问题?
解决方法
没有问题,因为您没有为 Parcelable 实现引入任何新属性。标准实现仅仅为您提供了一些辅助方法 describeContents
和 writeToParcel
以及一个静态的 CREATOR
对象,它们不会成为序列化内容的一部分。
示例:
class MyParcelable private constructor(`in`: Parcel) : Parcelable {
private val mData: Int = `in`.readInt()
override fun describeContents(): Int {
return 0
}
override fun writeToParcel(out: Parcel,flags: Int) {
out.writeInt(mData)
}
companion object {
val CREATOR: Parcelable.Creator<MyParcelable?>
= object : Parcelable.Creator<MyParcelable?> {
override fun createFromParcel(`in`: Parcel): MyParcelable? {
return MyParcelable(`in`)
}
override fun newArray(size: Int): Array<MyParcelable?> {
return arrayOfNulls(size)
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。