java.lang.Object
java.io.ObjectStreamClass
- All Implemented Interfaces:
Serializable
public class ObjectStreamClass extends Object implements Serializable
Serialization's descriptor for classes. It contains the name and
serialVersionUID of the class. The ObjectStreamClass for a specific class
loaded in this Java VM can be found/created using the lookup method.
The algorithm to compute the SerialVersionUID is described in Object Serialization Specification, Section 4.6, Stream Unique Identifiers.
- Since:
- 1.1
- See Also:
ObjectStreamField
, Object Serialization Specification, Section 4, Class Descriptors, Serialized Form
-
Field Summary
Fields Modifier and Type Field Description static ObjectStreamField[]
NO_FIELDS
serialPersistentFields value indicating no serializable fields -
Method Summary
Modifier and Type Method Description Class<?>
forClass()
Return the class in the local VM that this version is mapped to.ObjectStreamField
getField(String name)
Get the field of this class by name.ObjectStreamField[]
getFields()
Return an array of the fields of this serializable class.String
getName()
Returns the name of the class described by this descriptor.long
getSerialVersionUID()
Return the serialVersionUID for this class.static ObjectStreamClass
lookup(Class<?> cl)
Find the descriptor for a class that can be serialized.static ObjectStreamClass
lookupAny(Class<?> cl)
Returns the descriptor for any class, regardless of whether it implementsSerializable
.String
toString()
Return a string describing this ObjectStreamClass.
-
Field Details
-
NO_FIELDS
serialPersistentFields value indicating no serializable fields
-
-
Method Details
-
lookup
Find the descriptor for a class that can be serialized. Creates an ObjectStreamClass instance if one does not exist yet for class. Null is returned if the specified class does not implement java.io.Serializable or java.io.Externalizable.- Parameters:
cl
- class for which to get the descriptor- Returns:
- the class descriptor for the specified class
-
lookupAny
Returns the descriptor for any class, regardless of whether it implementsSerializable
.- Parameters:
cl
- class for which to get the descriptor- Returns:
- the class descriptor for the specified class
- Since:
- 1.6
-
getName
Returns the name of the class described by this descriptor. This method returns the name of the class in the format that is used by theClass.getName()
method.- Returns:
- a string representing the name of the class
-
getSerialVersionUID
public long getSerialVersionUID()Return the serialVersionUID for this class. The serialVersionUID defines a set of classes all with the same name that have evolved from a common root class and agree to be serialized and deserialized using a common format. NonSerializable classes have a serialVersionUID of 0L.- Returns:
- the SUID of the class described by this descriptor
-
forClass
Return the class in the local VM that this version is mapped to. Null is returned if there is no corresponding local class.- Returns:
- the
Class
instance that this descriptor represents
-
getFields
Return an array of the fields of this serializable class.- Returns:
- an array containing an element for each persistent field of this class. Returns an array of length zero if there are no fields.
- Since:
- 1.2
-
getField
Get the field of this class by name.- Parameters:
name
- the name of the data field to look for- Returns:
- The ObjectStreamField object of the named field or null if there is no such named field.
-
toString
Return a string describing this ObjectStreamClass.
-