我有一个场景,如:
MyClass obj1 = new MyClass();
............//some operations on obj1;
MyClass obj2 = new MyClass();
obj2 = obj1;
Run Code Online (Sandbox Code Playgroud)
我有以下问题:如果我修改任何参数,它在两个对象中都受到影响(因为两者都指向相同的位置) - 但是,当我修改obj2参数时,它不应该修改obj1中的参数值(即意味着两者都不应该指向同一地点).我怎样才能做到这一点?请帮我.我无法在这里克隆,因为myclass没有实现ICloneable,我无法修改myclass.如果我通过序列化和反序列化克隆,它会是一个深度克隆吗?
使您的MyClass工具ICloneable和使用
MyClass obj1 = new MyClass();
...
MyClass obj2 = obj1.Clone();
Run Code Online (Sandbox Code Playgroud)
如果MyClass不是clonable,则需要在obj1中查找所有特征值并将它们复制到obj2,例如
myclass obj2 = new myclass();
obj2.color = obj1.color; // .Clone();
obj2.size = obj1.size;
obj2.numberOfLimbs = obj1.numberOfLimbs;
// etc.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18388 次 |
| 最近记录: |