微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在一个类中同时使用 Parcelable 类和 Serializable

如何解决在一个类中同时使用 Parcelable 类和 Serializable

我有Data 和一些属性,其中一个属性一个实现 Serializable 的类,另一个实现 Parcelable,其他属性是字符串。

我想让这个类(数据)实现可序列化。

在序列化具有实现 Parcelable 但未实现 Serializable 的属性的 Data 类过程中是否有任何问题?

解决方法

没有问题,因为您没有为 Parcelable 实现引入任何新属性。标准实现仅仅为您提供了一些辅助方法 describeContentswriteToParcel 以及一个静态的 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 举报,一经查实,本站将立刻删除。