1. 程式人生 > >【轉】Parcelable, Serializable,Cloneable,copyProperties

【轉】Parcelable, Serializable,Cloneable,copyProperties

BE parcel 深拷貝 -- hset 信息 extern serial 輔助

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