类 SerializationHelper


  • public final class SerializationHelper
    extends 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.

    从以下版本开始:
    1.0
    作者:
    Nissim Karpenstein, Janek Bogucki, Daniel Rall, Stephen Colebourne, Jeff Varszegi, Gary Gregory
    • 方法详细资料

      • clone

        public static Object clone​(Serializable object)
                            throws SerializationException

        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.

        参数:
        object - the Serializable object to clone
        返回:
        the cloned object
        抛出:
        SerializationException - (runtime) if the serialization fails
      • serialize

        public static void serialize​(Serializable obj,
                                     OutputStream outputStream)
                              throws SerializationException

        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 null
        outputStream - the stream to write to, must not be null
        抛出:
        IllegalArgumentException - if outputStream is null
        SerializationException - (runtime) if the serialization fails
      • serialize

        public static byte[] serialize​(Serializable obj)
                                throws SerializationException

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

        参数:
        obj - the object to serialize to bytes
        返回:
        a byte[] with the converted Serializable
        抛出:
        SerializationException - (runtime) if the serialization fails
      • defaultClassLoader

        public static ClassLoader defaultClassLoader()
        Returns the Thread Context ClassLoader (TCCL).
        返回:
        The current TCCL
      • hibernateClassLoader

        public static ClassLoader hibernateClassLoader()
      • deserialize

        public static Object deserialize​(InputStream inputStream,
                                         ClassLoader loader)
                                  throws SerializationException
        Deserializes an object from the specified stream using the Thread Context ClassLoader (TCCL). If there is no TCCL set, the classloader of the calling class is used.

        The stream will be closed once the object is read. 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 the caller, if desired.

        参数:
        inputStream - the serialized object input stream, must not be null
        loader - The classloader to use
        返回:
        the deserialized object
        抛出:
        IllegalArgumentException - if inputStream is null
        SerializationException - (runtime) if the serialization fails