Why does serialization require a serial version UID in implemented class?
See Question&Answers more detail:osWhy does serialization require a serial version UID in implemented class?
See Question&Answers more detail:osFrom the doc for java.ioSerializable
:
The serialization runtime associates with each serializable class a version number, called a serialVersionUID, which is used during deserialization to verify that the sender and receiver of a serialized object have loaded classes for that object that are compatible with respect to serialization. If the receiver has loaded a class for the object that has a different serialVersionUID than that of the corresponding sender's class, then deserialization will result in an
InvalidClassException
. A serializable class can declare its own serialVersionUID explicitly by declaring a field named"serialVersionUID"
that must be static, final, and of type long