java.lang.Override annotation type to
validate method overriding. Serializable classes are encouraged to
use @Serial annotations to help a compiler catch
mis-declared serialization-related fields and methods,
mis-declarations that may otherwise be difficult to detect.
Specifically, annotations of this type should be
applied to serialization-related methods and fields in classes
declared to be Serializable. The five serialization-related
methods are:
private void writeObject(java.io.ObjectOutputStream stream) throws IOException
private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException
private void readObjectNoData() throws ObjectStreamException
Object writeReplace() throws ObjectStreamException
Object readResolve() throws ObjectStreamException
private static final ObjectStreamField[] serialPersistentFields
private static final long serialVersionUID
@Serial annotation is one of the defined serialization-related
methods or fields declared in a meaningful context and issue a warning
if that is not the case.
It is a semantic error to apply this annotation to other fields or methods, including:
Serializable
enum types
are defined to have a serialVersionUID of 0L so a
serialVersionUID field declared in an enum type is
ignored. The five serialization-related methods identified above
are likewise ignored for an enum type.
Externalizable:
writeObject, readObject, and readObjectNoData
serialPersistentFields
Externalizable interface extends Serializable, the three methods and one field above are
not used for externalizable classes.
Serializable class.
Serializable, Externalizable