[發明專利]一種修改Java序列化對象序列號的方法及其應用在審
| 申請號: | 202010614676.5 | 申請日: | 2020-06-30 |
| 公開(公告)號: | CN111752547A | 公開(公告)日: | 2020-10-09 |
| 發明(設計)人: | 唐夢杰;鐘衛為;孫含福;黃曉艷 | 申請(專利權)人: | 武漢虹信技術服務有限責任公司 |
| 主分類號: | G06F8/20 | 分類號: | G06F8/20;G06F8/40 |
| 代理公司: | 武漢東喻專利代理事務所(普通合伙) 42224 | 代理人: | 王聰聰 |
| 地址: | 430205 湖北省武漢市江夏區藏龍*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 修改 java 序列 對象 序列號 方法 及其 應用 | ||
本發明公開了一種修改Java序列化對象序列號的方法及其應用,涉及Java應用技術領域;該方法包括:在反序列化時創建自定義對象輸入流類,該自定義對象輸入流類繼承于序列化對象輸入流父類并對序列化對象輸入流的初始化過程進行自定義,以調用該序列化對象輸入流的類描述的讀取方法來初始化目標對象流描述類,將所述目標對象流描述類的序列號更改為本地對象流描述類的序列號;然后將序列號更改后的目標對象流描述類轉換為本地對象后重新進行序列化保存;本發明利用Java反射機制對歷史序列化數據進行恢復,從而避免出現因序列號不一致導致歷史的序列化對象讀取不了,造成數據丟失的現象。
技術領域
本發明屬于Java應用技術領域,更具體地,涉及一種修改Java序列化對象序列號的方法及其應用。
背景技術
Java序列化是Java自身提供的一種數據序列化方式,通常把Java對象序列化到持久化存儲(本地硬盤)或在網絡中傳輸Java對象時,會將Java對象序列化成二進制字節序列來存儲和傳輸,這種將Java對象轉變為二進制的行為稱之為序列化。這種機制極大方便了開發人員對復雜數據結構的流式傳輸需求。
Java對象的類實現Serializable接口后,可以指定具體的序列號值,也可以不指定,由該類的內部結構(包名、類名、屬性、方法等)計算得出一個唯一值,作用于在反序列化時校驗該類的序列化版本的一致性;當不指定具體的序列號值時,Java對象的序列號會因該類的內部結構(包名、類名、屬性、方法等)改變而改變;讀取數據時,通過反序列化將二進制字節序列轉換成Java對象,此過程中,如果由于Java對象的版本變更導致其序列號更改,則在反序列化讀取Java對象時,會發生序列化對象序列號與本地對象的序列號不一致的異常,從而導致歷史的序列化對象讀取不了,造成數據丟失。
發明內容
針對現有技術的至少一個缺陷或改進需求,本發明提供了一種修改Java序列化對象序列號的方法及其應用,其目的在于解決序列化對象序列號與本地對象的序列號不一致導致歷史的序列化對象讀取不了,造成數據丟失的問題。
為實現上述目的,按照本發明的第一個方面,提供了一種修改Java序列化對象序列號的方法,該方法包括:
在反序列化時初始化目標對象流描述類,將所述目標對象流描述類的序列號更改為本地對象流描述類的序列號;
將序列號更改后的目標對象流描述類轉換為本地對象后重新進行序列化保存。
優選的,上述修改Java序列化對象序列號的方法,所述在反序列化時初始化目標對象流描述類具體為:
創建自定義對象輸入流類,所述自定義對象輸入流類繼承于序列化對象輸入流父類,并對所述序列化對象輸入流的初始化過程進行自定義,以調用該序列化對象輸入流的類描述的讀取方法來初始化目標對象流描述類。
優選的,上述修改Java序列化對象序列號的方法,將所述目標對象流描述類的序列號更改為本地對象流描述類的序列號具體為:
獲取目標對象流描述類在本地Java虛擬機中的類;
獲取本地對象流描述類,比較所述目標對象流描述類與本地對象流描述類的序列號,當兩者的序列號不同時,將目標對象流描述類的序列號更改為本地對象流描述類的序列號。
優選的,上述修改Java序列化對象序列號的方法,所述獲取本地對象流描述類的方式為:
調用序列化對象輸入流類的lookup方法查找所述序列化對象輸入流類在本地Java虛擬機中對應的本地對象流描述類。
優選的,上述修改Java序列化對象序列號的方法,所述將目標對象流描述類的序列號更改為本地對象流描述類的序列號的方式為:
通過獲取序列化對象輸入流類的屬性信息將目標對象流描述類的序列號更改為本地對象流描述類的序列號。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢虹信技術服務有限責任公司,未經武漢虹信技術服務有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010614676.5/2.html,轉載請聲明來源鉆瓜專利網。





