| CONTENTS | PREV | NEXT | Java Object Serialization Specification |
The classObjectInputStream.GetFieldprovides the API for getting the values of serializable fields. The protocol of the stream is the same as used bydefaultReadObject.UsingreadFieldsto access the serializable fields does not change the format of the stream. It only provides an alternate API to access the values which does not require the class to have the corresponding non-transient and non-static fields for each named serializable field. The serializable fields are those declared usingserialPersistentFieldsor if it is not declared the non-transient and non-static fields of the object. When the stream is read the available serializable fields are those written to the stream when the object was serialized. If the class that wrote the stream is a different version not all fields will correspond to the serializable fields of the current class. The available fields can be retrieved from theObjectStreamClassof theGetFieldobject.The
getObjectStreamClassmethod returns anObjectStreamClassobject representing the class in the stream. It contains the list of serializable fields.The
defaultedmethod returns true if the field is not present in the stream. An IllegalArgumentException is thrown if the requested field is not a serializable field of the current class.Each
getmethod returns the specified serializable field from the stream. I/O exceptions will be thrown if the underlying stream throws an exception. An IllegalArgumentException is thrown if the name or type does not match the name and type of an field serializable field of the current class. The default value is returned if the stream does not contain an explicit value for the field.