# 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 Object

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`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`.
`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

### 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
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(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`