Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.lang
Class SerializationUtils

    java.lang.Object
      org.apache.commons.lang.SerializationUtils

public class SerializationUtils
extends java.lang.Object

Assists with the serialization process and performs additional functionality based on serialization.

- Deep clone using serialization
- Serialize managing finally and IOException
- Deserialize managing finally and IOException

This class throws exceptions for invalid `null` inputs. Each method documents its behaviour in more detail.

Since:
  1.0
Version:
  $Id: SerializationUtils.java 512889 2007-02-28 18:18:20Z dlr $
Author:
  Nissim Karpenstein, Janek Bogucki, Daniel L. Rall, Stephen Colebourne, Jeff Varszegi, Gary Gregory

Constructor Summary
`SerializationUtils()` SerializationUtils instances should NOT be constructed in standard programming.

Method Summary
`static java.lang.Object` | `clone(java.io.Serializable object)` Deep clone an `Object` using serialization.
`static java.lang.Object` | `deserialize(byte[] objectData)` Deserializes a single `Object` from an array of bytes.
`static java.lang.Object` | `deserialize(java.io.InputStream inputStream)` Deserializes an `Object` from the specified stream.
`static byte[]` | `serialize(java.io.Serializable obj)` Serializes an `Object` to a byte array for storage/serialization.
`static void` | `serialize(java.io.Serializable obj, java.io.OutputStream outputStream)` Serializes an `Object` to the specified stream.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SerializationUtils

    public SerializationUtils()

  SerializationUtils instances should NOT be constructed in standard programming. Instead, the class should be used as `SerializationUtils.clone(object)`.

  This constructor is public to permit tools that require a JavaBean instance to operate.

Since:
  2.0

Method Detail

### clone

    public static java.lang.Object clone(java.io.Serializable object)

  Deep clone an `Object` using serialization.

  This is many times slower than writing clone methods by hand on all objects in your object graph. However, for complex object graphs, or for those that don't support deep cloning this can be a simple alternative implementation. Of course all the objects must be `Serializable`.

  Parameters:
    `object` - the `Serializable` object to clone
  Returns:
    the cloned object
  Throws:
    `SerializationException` - (runtime) if the serialization fails

### serialize

    public static void serialize(java.io.Serializable obj,
                                 java.io.OutputStream outputStream)

  Serializes an `Object` to the specified stream.

  The stream will be closed once the object is written. This avoids the need for a finally clause, and maybe also exception handling, in the application code.

  The stream passed in is not buffered internally within this method. This is the responsibility of your application if desired.

  Parameters:
    `obj` - the object to serialize to bytes, may be null
    `outputStream` - the stream to write to, must not be null
  Throws:
    `java.lang.IllegalArgumentException` - if `outputStream` is `null`
    `SerializationException` - (runtime) if the serialization fails

### serialize

    public static byte[] serialize(java.io.Serializable obj)

  Serializes an `Object` to a byte array for storage/serialization.

  Parameters:
    `obj` - the object to serialize to bytes
  Returns:
    a byte[] with the converted Serializable
  Throws:
    `SerializationException` - (runtime) if the serialization fails

### deserialize

    public static java.lang.Object deserialize(java.io.InputStream inputStream)

  Deserializes an `Object` from the specified stream.

  The stream will be closed once the object is written. This avoids the need for a finally clause, and maybe also exception handling, in the application code.

  The stream passed in is not buffered internally within this method. This is the responsibility of your application if desired.

  Parameters:
    `inputStream` - the serialized object input stream, must not be null
  Returns:
    the deserialized object
  Throws:
    `java.lang.IllegalArgumentException` - if `inputStream` is `null`
    `SerializationException` - (runtime) if the serialization fails

### deserialize

    public static java.lang.Object deserialize(byte[] objectData)

  Deserializes a single `Object` from an array of bytes.

  Parameters:
    `objectData` - the serialized object, must not be null
  Returns:
    the deserialized object
  Throws:
    `java.lang.IllegalArgumentException` - if `objectData` is `null`
    `SerializationException` - (runtime) if the serialization fails

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.