代码中有一个对象实例A,想要再建立一个相同类型的实例B,并且B的属性与A相同,如何实现?谢谢。

解决方案 »

  1.   

    public class DataClone {
        public static Object getCopy(Object obj) {
            WorkData data = new WorkData(obj);
            PipedOutputStream out = new PipedOutputStream();
            ObjectOutputStream ooo = new ObjectOutputStream(out);
            ooo.writeObject(data);
            PipedInputStream in = new PipedInputStream(out);
            ObjectInputStream iii = new ObjectInputStream(in);
            Data copyData = (Data) iii.readObject();
            return copyData.get();
        }    class WorkData implements Serializable  {
            public WorkData(Object obj) {
                this.data = obj;
            }
            public Object get() {
                return this.data;
            }
            private Object data = null;
        }
    }
      

  2.   

    不是浅层复制,只要里面没有加 transient 关键字的,都会向下递归复制到底。是无限深度的。