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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access