如何在Java中更快地创建/复制对象?
我想在java中复制一个对象而不复制引用如何在Java中更快地创建/复制对象?,java,object,Java,Object,我想在java中复制一个对象而不复制引用 Object o1 = new Object(); Object o2 = o1; 但o2不应复制o1的参考值。因此,o2中的任何变化不得影响o1 在java中如何实现这一点?您可以使用方法克隆对象: Object o2 = o1.clone(); 您可以使用方法克隆对象: Object o2 = o1.clone(); 您可以重写clone方法,该方法将创建整个对象图深度副本的副本并创建新对象 注意:每个类都将从类继承默认克隆实现。但必须重写该方
Object o1 = new Object();
Object o2 = o1;
但o2不应复制o1的参考值。因此,o2中的任何变化不得影响o1
在java中如何实现这一点?您可以使用方法克隆对象:
Object o2 = o1.clone();
您可以使用方法克隆对象:
Object o2 = o1.clone();
您可以重写clone方法,该方法将创建整个对象图深度副本的副本并创建新对象
注意:每个类都将从类继承默认克隆实现。但必须重写该方法才能根据对象的内容执行复制
仅供参考:
默认的Object.clone是浅拷贝。然而,它是
设计用于抛出CloneNotSupportedException,除非您的对象
实现可克隆性
当您实现Cloneable时,您应该覆盖clone以使
它通过在所有需要复制的字段上调用clone来执行深度复制
他们自己是可克隆的
您可以重写clone方法,该方法将创建整个对象图深度副本的副本并创建新对象
注意:每个类都将从类继承默认克隆实现。但必须重写该方法才能根据对象的内容执行复制
仅供参考:
默认的Object.clone是浅拷贝。然而,它是
设计用于抛出CloneNotSupportedException,除非您的对象
实现可克隆性
当您实现Cloneable时,您应该覆盖clone以使
它通过在所有需要复制的字段上调用clone来执行深度复制
他们自己是可克隆的
你应该使用,然后你有一个对象的副本
然后必须重写类中的clone方法
克隆人
创建并返回此对象的副本。的确切含义
复制可能取决于对象的类。总的意图是
对于任何对象x,表达式:
你应该使用,然后你有一个对象的副本
然后必须重写类中的clone方法
克隆人
创建并返回此对象的副本。的确切含义
复制可能取决于对象的类。总的意图是
对于任何对象x,表达式:
如果需要复制对象以外的其他类,请创建一个复制构造函数或静态工厂方法。效果是这样的:
MyClass o1 = new MyClass();
MyClass o2 = new MyClass(o1); // in constructor make new object with data from o1 attributes
或
不要使用克隆。-> 如果需要复制对象以外的其他类,请创建一个复制构造函数或静态工厂方法。效果是这样的:
MyClass o1 = new MyClass();
MyClass o2 = new MyClass(o1); // in constructor make new object with data from o1 attributes
或
不要使用克隆。-> 克隆方法特定于对象类。如果我必须复制某个特定类的对象,我认为克隆将不起作用。@Setu,正如下面其他人所指出的,您需要覆盖特定类的克隆方法。克隆方法是特定于对象类的。如果我必须复制某个特定类的对象,我认为克隆将不起作用。@Setu,正如下面其他人所指出的,您需要覆盖特定类的克隆方法。