Indicates that an annotated field or method is part of the serialization mechanism defined by the
 Java Object Serialization Specification. This
 annotation type is intended to allow compile-time checking of
 serialization-related declarations, analogous to the checking
 enabled by the 
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
- ANY-ACCESS-MODIFIER Object writeReplace() throws ObjectStreamException
- ANY-ACCESS-MODIFIER 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:
- fields or methods in a class that is not Serializable
- fields or methods of the proper structural declaration, but in
 a type where they are ineffectual. For example, enumtypes are defined to have aserialVersionUIDof0Lso aserialVersionUIDfield declared in anenumtype is ignored. The five serialization-related methods identified above are likewise ignored for anenumtype.
- in a class that is Externalizable:-  method declarations of writeObject,readObject, andreadObjectNoData
- a field declaration for serialPersistentFields
 Externalizableinterface extendsSerializable, the three methods and one field above are not used for externalizable classes.
-  method declarations of 
Serializable class.- Since:
- 14
- See Also: