亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用類的哈希碼作為serialVersionUID是否明智?

使用類的哈希碼作為serialVersionUID是否明智?

呼啦一陣風 2019-04-10 14:15:42
我注意到在我公司的代碼庫中,一個常見的模式是將serialVersionUID類設置為類的哈希碼,如下所示:public final class ClassName implements Serializable {     private static final long serialVersionUID = ClassName.class.hashCode();     [...]}這是設置課程的有效方法serialVersionUID嗎
查看完整描述

2 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

Class沒有明確定義的hashCode()方法,因此它沒有被定義為穩定的。

這意味著,你可以(而且可能會)得到不同的結果為MyClass.class.hashCode()不同的過程之間,甚至在同一JVM和絕對不同的JVM實現和/或版本之間。

這意味著來自任何一個JVM的序列化數據可能只能在同一個JVM中使用。

現在,這可能被用作避免使用序列化進行跨VM通信的有意方式(它不是“安全機制”或類似的東西,但它可用于快速檢測使用序列化進行跨VM通信的嘗試)。但如果這是目標,那么使用隨機數變平可能更好。


查看完整回答
反對 回復 2019-05-15
  • 2 回答
  • 0 關注
  • 452 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號