天天看點

Java 序列化方式實作深克隆

// 用序列化與反序列化實作深克隆
    private Object deepClone(Object src) {
        Object o = null;
        try
        {
            if (src != null)
            {
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ObjectOutputStream oos = new ObjectOutputStream(baos);
                oos.writeObject(src);
                oos.close();
                ByteArrayInputStream bais = new ByteArrayInputStream(baos
                        .toByteArray());
                ObjectInputStream ois = new ObjectInputStream(bais);
                o = ois.readObject();
                ois.close();
            }
        } catch (IOException | ClassNotFoundException e)
        {
            e.printStackTrace();
        }
        return o;
    }