如果父類實現了Serializable並生成了serialVersionUID,而子類並沒有寫重新生成serialVersionUID的語句?

2025-01-17 22:50:24 字數 1251 閱讀 9940

1樓:destiny_葭陘

父類實現了 serializable 後,字類不需要顯式實現 serializable,但是仍然需要定義 serialversionuid。

serialversionuid 是序列化版本id,反序列化的時候通過它的值來驗證版本是否一致。如果不指明,會根據類的方法屬性等資訊自動計算出來。

也就是說,序列化之後,如果你沒有對子類進行修改,那麼是可以正常反序列化的。如果你修改了子類,那麼系統自動算出來的 serialversionuid 就可能發生改變,版本不一致,這時候就不能反序列化了。

手動定義 serialversionuid 的作用是可以手動控制版本。當你對類進行了修改,自行判斷是否和之前相容,來決定 serialversionuid 是否修改。

公司的類沒有實現serializable介面 怎麼生成的serialversionuid

2樓:網友

實現 serializable 介面主要是為了物件持久化,就是把物件持久化到磁碟上或資料庫中,定義 serialversionuid 是為了物件持久化和物件還原的操作正常運作,如果你公司的類沒有要被持久化的操作,那麼可以不實現介面也可以沒有uid

我寫了乙個j**a實體類,implements了serializable介面,然後我如何讓serialversionuid自動生成

3樓:大雁南飛

1.點選類旁邊的警告符號;

2.選擇add generated serial version id即可自動生成。

4樓:極光殘痕

看看你那個類的類名下面有沒有波浪線,是警告的提示,然後滑鼠放在上面,會出現提示的,點選一下就出來了。

j**a中的serialversionuid。 如果在本地的兩個類中宣告瞭兩個值相同的這個變數,會有什麼問題嗎?

5樓:迷戀信仰

不會吧,求高手來詳細說明下。

j**a 版本號作用,private static final long serialversionuid = 6092916278939819373l;??

6樓:不在回味不在

一點作用沒有 寫了就沒有那個黃色的警告 沒寫就報黃色的警告。

7樓:

寫了這個的話,反序列化的時候會快。

Python子類繼承,如果不用父類的函式和方法,應該怎麼寫

子類繼承父類時,如果父類有需要初始化的屬性,那麼必須在子類中呼叫父類的初始化方法,幫助父類進行初始化,否則,子類可以不呼叫父類的初始化方法 示例 父類car中沒有屬性需要初始化,所有子類中也不需要呼叫父類的初始化方法 class car def show name self print car na...

類的成員函式的實現,如何實現類的成員函式作為回撥函式

class string 答案 string string const char str else string string 以前寫的,差不多,個別名字不同 ifndef mstring h h define mstring h h include class mstring mstring ms...

Java子類是否會有父類的private方法和屬性

子類繼承父類,子類擁有了父類的所有屬性和方法。程式驗證,父類的私有屬性和方法子類是無法直接訪問的。當然私有屬性可以通過public修飾的getter和setter方法訪問到的,但是私有方法不行。假設 子類不能夠繼承父類的私有屬性和方法 那麼 分析記憶體後,會發現,當乙個子類被例項化的時候,缺省會先呼...