# Class ObjectInputStream.GetField

java.lang.Object
java.io.ObjectInputStream.GetField

Enclosing class:
  `ObjectInputStream`

public abstract static class ObjectInputStream.GetField extends Object
Provide access to the persistent fields read from the input stream.

Since:
  1.1

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GetField()`
  Constructor for subclasses to call.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract boolean`
  `defaulted(String name)`
  Return true if the named field is defaulted and has no value in this stream.
  `abstract boolean`
  `get(String name, boolean val)`
  Get the value of the named boolean field from the persistent field.
  `abstract byte`
  `get(String name, byte val)`
  Get the value of the named byte field from the persistent field.
  `abstract char`
  `get(String name, char val)`
  Get the value of the named char field from the persistent field.
  `abstract double`
  `get(String name, double val)`
  Get the value of the named double field from the persistent field.
  `abstract float`
  `get(String name, float val)`
  Get the value of the named float field from the persistent field.
  `abstract int`
  `get(String name, int val)`
  Get the value of the named int field from the persistent field.
  `abstract long`
  `get(String name, long val)`
  Get the value of the named long field from the persistent field.
  `abstract short`
  `get(String name, short val)`
  Get the value of the named short field from the persistent field.
  `abstract Object`
  `get(String name, Object val)`
  Get the value of the named Object field from the persistent field.
  `abstract ObjectStreamClass`
  `getObjectStreamClass()`
  Get the ObjectStreamClass that describes the fields in the stream.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### GetField

    public GetField()
    Constructor for subclasses to call.

- ## Method Details

  - ### getObjectStreamClass

    public abstract ObjectStreamClass getObjectStreamClass()
    Get the ObjectStreamClass that describes the fields in the stream.
    Returns:
      the descriptor class that describes the serializable fields

  - ### defaulted

    public abstract boolean defaulted(String name) throws IOException
    Return true if the named field is defaulted and has no value in this stream.
    Parameters:
      `name` - the name of the field
    Returns:
      true, if and only if the named field is defaulted
    Throws:
      `IOException` - if there are I/O errors while reading from the underlying `InputStream`
      `IllegalArgumentException` - if `name` does not correspond to a serializable field

  - ### get

    public abstract boolean get(String name, boolean val) throws IOException
    Get the value of the named boolean field from the persistent field.
    Parameters:
      `name` - the name of the field
      `val` - the default value to use if `name` does not have a value
    Returns:
      the value of the named `boolean` field
    Throws:
      `IOException` - if there are I/O errors while reading from the underlying `InputStream`
      `IllegalArgumentException` - if type of `name` is not serializable or if the field type is incorrect

  - ### get

    public abstract byte get(String name, byte val) throws IOException
    Get the value of the named byte field from the persistent field.
    Parameters:
      `name` - the name of the field
      `val` - the default value to use if `name` does not have a value
    Returns:
      the value of the named `byte` field
    Throws:
      `IOException` - if there are I/O errors while reading from the underlying `InputStream`
      `IllegalArgumentException` - if type of `name` is not serializable or if the field type is incorrect

  - ### get

    public abstract char get(String name, char val) throws IOException
    Get the value of the named char field from the persistent field.
    Parameters:
      `name` - the name of the field
      `val` - the default value to use if `name` does not have a value
    Returns:
      the value of the named `char` field
    Throws:
      `IOException` - if there are I/O errors while reading from the underlying `InputStream`
      `IllegalArgumentException` - if type of `name` is not serializable or if the field type is incorrect

  - ### get

    public abstract short get(String name, short val) throws IOException
    Get the value of the named short field from the persistent field.
    Parameters:
      `name` - the name of the field
      `val` - the default value to use if `name` does not have a value
    Returns:
      the value of the named `short` field
    Throws:
      `IOException` - if there are I/O errors while reading from the underlying `InputStream`
      `IllegalArgumentException` - if type of `name` is not serializable or if the field type is incorrect

  - ### get

    public abstract int get(String name, int val) throws IOException
    Get the value of the named int field from the persistent field.
    Parameters:
      `name` - the name of the field
      `val` - the default value to use if `name` does not have a value
    Returns:
      the value of the named `int` field
    Throws:
      `IOException` - if there are I/O errors while reading from the underlying `InputStream`
      `IllegalArgumentException` - if type of `name` is not serializable or if the field type is incorrect

  - ### get

    public abstract long get(String name, long val) throws IOException
    Get the value of the named long field from the persistent field.
    Parameters:
      `name` - the name of the field
      `val` - the default value to use if `name` does not have a value
    Returns:
      the value of the named `long` field
    Throws:
      `IOException` - if there are I/O errors while reading from the underlying `InputStream`
      `IllegalArgumentException` - if type of `name` is not serializable or if the field type is incorrect

  - ### get

    public abstract float get(String name, float val) throws IOException
    Get the value of the named float field from the persistent field.
    Parameters:
      `name` - the name of the field
      `val` - the default value to use if `name` does not have a value
    Returns:
      the value of the named `float` field
    Throws:
      `IOException` - if there are I/O errors while reading from the underlying `InputStream`
      `IllegalArgumentException` - if type of `name` is not serializable or if the field type is incorrect

  - ### get

    public abstract double get(String name, double val) throws IOException
    Get the value of the named double field from the persistent field.
    Parameters:
      `name` - the name of the field
      `val` - the default value to use if `name` does not have a value
    Returns:
      the value of the named `double` field
    Throws:
      `IOException` - if there are I/O errors while reading from the underlying `InputStream`
      `IllegalArgumentException` - if type of `name` is not serializable or if the field type is incorrect

  - ### get

    public abstract Object get(String name, Object val) throws IOException, ClassNotFoundException
    Get the value of the named Object field from the persistent field.
    Parameters:
      `name` - the name of the field
      `val` - the default value to use if `name` does not have a value
    Returns:
      the value of the named `Object` field
    Throws:
      `ClassNotFoundException` - Class of a serialized object cannot be found.
      `IOException` - if there are I/O errors while reading from the underlying `InputStream`
      `IllegalArgumentException` - if type of `name` is not serializable or if the field type is incorrect