码迷,mamicode.com
首页 > 其他好文 > 详细

【转】Parcelable, Serializable,Cloneable,copyProperties

时间:2018-05-16 12:55:54      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:完整   sdn   ...   str   手工   遍历   hash   linked   ash   

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

标签:完整   sdn   ...   str   手工   遍历   hash   linked   ash   

原文地址:https://www.cnblogs.com/chenhui7373/p/9044935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!