從我的在線閱讀中,爲班級創建一個序列版本ID似乎是一種很好的做法。應用程序中的每個Java類是否需要具有不同的唯一序列版本ID?
我的問題是,在一個應用程序中,我必須爲每個類創建一個唯一的ID嗎?
或者我可以簡單地將以下ID分配給我的應用程序中的每個類?
private static final long serialVersionUID = 1;
從我的在線閱讀中,爲班級創建一個序列版本ID似乎是一種很好的做法。應用程序中的每個Java類是否需要具有不同的唯一序列版本ID?
我的問題是,在一個應用程序中,我必須爲每個類創建一個唯一的ID嗎?
或者我可以簡單地將以下ID分配給我的應用程序中的每個類?
private static final long serialVersionUID = 1;
Serializable
沒有,也無所謂什麼ID是特定階級 - 這是該類序列化格式版本。類名稱本身仍然是序列化的,所以它不像是在所有類中都是唯一的。 (當然,可能會在找到其他方式,讓每個類別擁有不同的版本號碼,我想不出任何副手,但這是另一回事。)
使用一個常量值是好的 - 但你做需要確保你改變它,當你真正改變序列化格式(例如通過添加一個字段)。
你要知道,我寧願使用像Protocol Buffers這是相當具有向後/向前兼容性:)
喬恩,非常感謝您的意見! – curious1
邁克爾,非常感謝! – curious1