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