Name
ObjectInputStream.GetField
Synopsis
This class
holds the values of named
fields read by an
ObjectInputStream
. It gives the programmer precise
control over the deserialization process and is typically used when
implementing an object with a set of fields that do not match the set
of fields (and the serialization stream format) of the original
implementation of the object. This class allows the implementation of
a class to change without breaking
serialization compatibility.
In order to use the
GetField
class, your class must implement a
private readObject( )
method that is responsible
for custom deserialization. Typically, when using the
GetField
class, you have also specified an array
of ObjectStreamField
objects as the value of a
private static field named serialPersistentFields
.
This array specifies the names and types of all fields expected to be
found when reading from a serialization stream. If there is no
serialPersistentField
field, the array of
ObjectStreamField
objects is created from the
actual fields (excluding static
and
transient
fields) of the class.
Within the readObject(
)
method of your class, call the readFields(
)
method of ObjectInputStream( )
. This
method reads the values of all fields from the stream and stores them
in an ObjectInputStream.GetField
object that it
returns. This GetField
object is essentially a mapping from field names to field values, and you can extract the values of whatever fields you need in order to restore the proper state of the ...
Get Java in a Nutshell, 5th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.