1. 程式人生 > >修改protostuff-runtime原始碼排序實體類欄位,解決安卓和java伺服器序列化不一致

修改protostuff-runtime原始碼排序實體類欄位,解決安卓和java伺服器序列化不一致

github 原始碼地址 https://github.com/brucelwl/protostuff-runtime-bruce-1.1.3.git

Protobuf是Google開源的高效,跨平臺的序列化工具,而protostuff是一個基於protobuf實現的序列化工具, 它較於protobuf最明顯的好處是,在幾乎不損耗效能的情況下做到了不用我們寫.proto檔案來實現序列化. 由於protostuff-runtime在生成類的Schema時依賴類中欄位的順序 在Android中由於虛擬機器和伺服器虛擬機器存在區別, 所以通過反射獲取到類中欄位的順序會不一致, 導致伺服器序列化的流傳輸到Android後反序列化資料異常。 所以需改protostuff-runtime中的程式碼使得欄位順序一致,基本思路就是對反射得到的欄位屬性進行排序 修改程式碼部分:RuntimeSchema類中的fill方法