public class SerializationUtils extends Object
Assists with the serialization process and performs additional functionality based on serialization.
This class throws exceptions for invalid null
inputs.
Each method documents its behaviour in more detail.
#ThreadSafe#
Constructor and Description |
---|
SerializationUtils()
SerializationUtils instances should NOT be constructed in standard programming.
|
Modifier and Type | Method and Description |
---|---|
static <T extends Serializable> |
clone(T object)
Deep clone an
Object using serialization. |
static <T> T |
deserialize(byte[] objectData)
Deserializes a single
Object from an array of bytes. |
static <T> T |
deserialize(InputStream inputStream)
Deserializes an
Object from the specified stream. |
static <T extends Serializable> |
roundtrip(T msg)
Performs a serialization roundtrip.
|
static byte[] |
serialize(Serializable obj)
Serializes an
Object to a byte array for
storage/serialization. |
static void |
serialize(Serializable obj,
OutputStream outputStream)
Serializes an
Object to the specified stream. |
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.
public static <T extends Serializable> T clone(T 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
.
T
- the type of the object involvedobject
- the Serializable
object to cloneSerializationException
- (runtime) if the serialization failspublic static <T extends Serializable> T roundtrip(T msg)
Serializable
.T
- the type of the object involvedmsg
- the object to roundtrippublic static void serialize(Serializable obj, 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.
obj
- the object to serialize to bytes, may be nulloutputStream
- the stream to write to, must not be nullIllegalArgumentException
- if outputStream
is null
SerializationException
- (runtime) if the serialization failspublic static byte[] serialize(Serializable obj)
Serializes an Object
to a byte array for
storage/serialization.
obj
- the object to serialize to bytesSerializationException
- (runtime) if the serialization failspublic static <T> T deserialize(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.
If the call site incorrectly types the return value, a ClassCastException
is thrown from the call site.
Without Generics in this declaration, the call site must type cast and can cause the same ClassCastException.
Note that in both cases, the ClassCastException is in the call site, not in this method.
T
- the object type to be deserializedinputStream
- the serialized object input stream, must not be nullIllegalArgumentException
- if inputStream
is null
SerializationException
- (runtime) if the serialization failspublic static <T> T deserialize(byte[] objectData)
Deserializes a single Object
from an array of bytes.
If the call site incorrectly types the return value, a ClassCastException
is thrown from the call site.
Without Generics in this declaration, the call site must type cast and can cause the same ClassCastException.
Note that in both cases, the ClassCastException is in the call site, not in this method.
T
- the object type to be deserializedobjectData
- the serialized object, must not be nullIllegalArgumentException
- if objectData
is null
SerializationException
- (runtime) if the serialization failsCopyright © 2001–2020 The Apache Software Foundation. All rights reserved.