Parcelable, Serializable,Cloneable,copyProperties
Posted chenhui7373
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Parcelable, Serializable,Cloneable,copyProperties相关的知识,希望对你有一定的参考价值。
Copying ... https://blog.csdn.net/max2005/article/details/78325036
存在着三件事,整理如下
Parcelable, Serializable(包括Externalizable+transient) -------压缩成字节流,再恢复成同类对象
Parcelable手工将字段放入Parcel字节流,无反射
Serializable使用反射来发现字段及辅助信息
Serializable使用Stream或ArrayByte之类字节流
Externalizable+transient可以在Serializable过程中拦截并改变数据
必须保证父类子类从上到下的整个层级均实现了Parcelable或Serializable,从而完整遍历
ArrayList+LinkedList,HashSet,HashMap均标明支持Serializable
Cloneable/clone -----------目的是拷贝出一个同类对象,不需要传输,所以可以无需压缩打包
存在浅拷贝与深拷贝之分,在父类到子类的整个层级中都要『非常小心』
Java语言本身支持的clone采用反射来发现字段
必须保证父类子类从上到下的整个层级均实现了Cloneable,如同Serializable,从而完整遍历
ArrayList+LinkedList,HashSet,HashMap均标明支持Cloneable,如同Serializable
通过Parcelable或Serializable操作可以实现clone,但因反射及压缩,效率比字段直接拷贝低很多
不同类的对象之间,同字段的拷贝 ---------- 字段对应,不同类。应该是根据反射出的字段名进行拷贝
怎样实现?可以使用第三方BeanUtils.copyProperties,在两个不同的bean之间拷贝同名字段
以上是关于Parcelable, Serializable,Cloneable,copyProperties的主要内容,如果未能解决你的问题,请参考以下文章
Serializable & Parcelable 原理和区别