Java 深度拷贝对象FastByteArrayOutputStream

public class Util {

    /**

    * Returns a copy of the object, or null if the object cannot be serialized.

    */

    //深度克隆,克隆的对象和原来是一个

    public static Object deepClone(Object orig) {

        Object obj = null;

        try {

            // Write the object out to a byte array    输出流  深度拷贝对象

            FastByteArrayOutputStream fbos = new FastByteArrayOutputStream();

            //对象输出流

            ObjectOutputStream out = new ObjectOutputStream(fbos);

            //把传进来的对象 写入流中,然后这个流是和拷贝对象的流 连接的  所以这个要拷贝的对象 已经交给这个对象

            out.writeObject(orig);

            out.flush();

            out.close();

            // Retrieve(检索,恢复) an input stream from the byte array and read

            // a copy of the object back in.


            //从这个拷贝对象的流中 获取输入流

            ObjectInputStream in = new ObjectInputStream(fbos.getInputStream());

            //从输入流中读出这个对象

            obj = in.readObject();

        } catch (IOException e) {

            e.printStackTrace();

        } catch (ClassNotFoundException cnfe) {

            cnfe.printStackTrace();

        }

        //返回拷贝的对象

        return obj;

    }

你可能感兴趣的:(Java 深度拷贝对象FastByteArrayOutputStream)