java - 在一个类中同时使用 Parcelable 类和 Serializable
问题描述
我有具有一些属性的Data类,其中一个属性是实现 Serializable的类,另一个实现 Parcelable,其他属性是 String。
我想让这个类(数据)实现可序列化。
具有实现 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)
}
}
}
}
推荐阅读
- python - Pandas Groupby with calculating ewm not working as expected
- java - 如何在java中将字符串转换为数字?但我不是在寻找 hashCode 因为它不会给出唯一的数字。至少我想要相同的数学逻辑
- database - 对于非常无模式的宽行来说,什么是好的数据存储?
- html - 将收音机与自定义收音机对齐
- ios - 如何保持 UNUserNotificationCenter 声音播放直到用户停止它
- java - 取消计划的计时器任务并创建另一个计划
- java - 没有为 AuthenticationSuccessEvent 调用 Spring 安全 ApplicationListener
- javascript - 为什么调用 Function.apply.bind(fn, null) 调用 `fn.apply`,而不是 `Function.apply`?
- audio - 使用 sox 转换音频文件,同时保留日期/时间信息
- python - Python不会从命令行中提取多个参数