如何复制一个java对象

 我来答
GUODAPENG12345
2018-05-18 · TA获得超过1312个赞
知道小有建树答主
回答量:779
采纳率:80%
帮助的人:225万
展开全部
/**
     * 复制对象
     *
     * @param srcObj
     * @return
     */
    public static Object depthClone(Object srcObj) {
        if (srcObj == null) {
            return null;
        }
        Object cloneObj = null;
        ByteArrayOutputStream out = null;
        ObjectOutputStream oo = null;
        ByteArrayInputStream in = null;
        ObjectInputStream oi = null;
        try {
            out = new ByteArrayOutputStream();
            oo = new ObjectOutputStream(out);
            oo.writeObject(srcObj);

            in = new ByteArrayInputStream(out.toByteArray());
            oi = new ObjectInputStream(in);
            cloneObj = oi.readObject();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (out != null) {
                try {
                    out.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
            if (oo != null) {
                try {
                    oo.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
            if (in != null) {
                try {
                    in.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
            if (oi != null) {
                try {
                    oi.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }
        return cloneObj;
    }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式