Module java.sql.rowset
Package javax.sql.rowset.serial

# Class SerialJavaObject

java.lang.Object
javax.sql.rowset.serial.SerialJavaObject

All Implemented Interfaces:
  `Serializable`, `Cloneable`

public class SerialJavaObject extends Object implements Serializable, Cloneable
A serializable mapping in the Java programming language of an SQL `JAVA_OBJECT` value. Assuming the Java object implements the `Serializable` interface, this class simply wraps the serialization process.

If however, the serialization is not possible because the Java object is not immediately serializable, this class will attempt to serialize all non-static members to permit the object state to be serialized. Static or transient fields cannot be serialized; an attempt to serialize them will result in a `SerialException` object being thrown.

## Thread safety

A SerialJavaObject is not safe for use by multiple concurrent threads. If a SerialJavaObject is to be used by more than one thread then access to the SerialJavaObject should be controlled by appropriate synchronization.

Since:
  1.5
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SerialJavaObject(Object obj)`
  Constructor for `SerialJavaObject` helper class.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  Returns a clone of this `SerialJavaObject`.
  `boolean`
  `equals(Object o)`
  Compares this SerialJavaObject to the specified object.
  `Field[]`
  `getFields()`
  Returns an array of `Field` objects that contains each field of the object that this helper class is serializing.
  `Object`
  `getObject()`
  Returns an `Object` that is a copy of this `SerialJavaObject` object.
  `int`
  `hashCode()`
  Returns a hash code for this SerialJavaObject.

  ### Methods declared in class java.lang.Object

  `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### SerialJavaObject

    public SerialJavaObject(Object obj) throws SerialException
    Constructor for `SerialJavaObject` helper class.
    Parameters:
      `obj` - the Java `Object` to be serialized
    Throws:
      `SerialException` - if the object is found not to be serializable

- ## Method Details

  - ### getObject

    public Object getObject() throws SerialException
    Returns an `Object` that is a copy of this `SerialJavaObject` object.
    Returns:
      a copy of this `SerialJavaObject` object as an `Object` in the Java programming language
    Throws:
      `SerialException` - if the instance is corrupt

  - ### getFields

    public Field[] getFields() throws SerialException
    Returns an array of `Field` objects that contains each field of the object that this helper class is serializing.
    Returns:
      an array of `Field` objects
    Throws:
      `SerialException` - if an error is encountered accessing the serialized object
      `SecurityException` - If a security manager, s, is present and the caller's class loader is not the same as or an ancestor of the class loader for the class of the object being serialized and invocation of `s.checkPackageAccess()` denies access to the package of that class.
    See Also:
      - `Class.getFields()`

  - ### equals

    public boolean equals(Object o)
    Compares this SerialJavaObject to the specified object. The result is `true` if and only if the argument is not `null` and is a `SerialJavaObject` object that is identical to this object
    Overrides:
      `equals` in class `Object`
    Parameters:
      `o` - The object to compare this `SerialJavaObject` against
    Returns:
      `true` if the given object represents a `SerialJavaObject` equivalent to this SerialJavaObject, `false` otherwise
    See Also:
      - `Object.hashCode()`
      - `HashMap`

  - ### hashCode

    public int hashCode()
    Returns a hash code for this SerialJavaObject. The hash code for a `SerialJavaObject` object is taken as the hash code of the `Object` it stores
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash code value for this object.
    See Also:
      - `Object.equals(java.lang.Object)`
      - `System.identityHashCode(java.lang.Object)`

  - ### clone

    public Object clone()
    Returns a clone of this `SerialJavaObject`.
    Overrides:
      `clone` in class `Object`
    Returns:
      a clone of this SerialJavaObject
    See Also:
      - `Cloneable`