serialVersionUID作用:
序列化時為了保持版本的兼容性,即在版本升級時反序列化仍保持對象的唯一性。
如果你修改代碼重新部署后出現序列化錯誤,可以考慮給相應的類增加serialVersionUID字段。
一般來說有兩種生成方式:
一個是默認的1L,比如:private static final long serialVersionUID = 1L;
一個是根據類名、接口名、成員方法及屬性等來生成一個64位的哈希字段,比如:private static final long serialVersionUID = -8940196742313994740L;之類的。
下面說說用Eclipse/Myeclipse生成serialVersionUID,方法非常簡單。
新建一個實體類后,會出現黃色的警告提示,點這個黃色提示,會出現以下提示:
點擊第一個,會生成默認序列ID:
private static final long serialVersionUID = 1L;
點擊第二個,會生成一個64位的哈希字段:
private static final long serialVersionUID = -6865566973658391659L;