Serial
public abstract @interface Serial
implements Annotation
java.io.Serial |
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,
enum
types are defined to have aserialVersionUID
of0L
so aserialVersionUID
field declared in anenum
type is ignored. The five serialization-related methods identified above are likewise ignored for anenum
type. - in a class that is
Externalizable
:- method declarations of
writeObject
,readObject
, andreadObjectNoData
- a field declaration for
serialPersistentFields
Externalizable
interface extendsSerializable
, the three methods and one field above are not used for externalizable classes. - method declarations of
Serializable
class. See also:
Summary
Inherited methods | |
---|---|