我已经知道什么是浅拷贝,但我无法实现它。这里有一个简短的例子。
public class Shallow {
String name;
int number;
public Shallow (Shallow s) {
this.name = s.name;
this.number = s.number;
}
}
测试实现...
public class ShallowTest {
public static void main (String[] args) {
Shallow shallow = new Shallow("Shallow", 123);
Shallow shallowClone = new Shallow(shallow);
shallowClone.name = 'Peter';
shallowClone.number = 321;
System.out.println(shallow.name + " - " + shallow.number);
}
}
根据我的理解,仅仅是非原始数据类型String的引用会被复制,因此通过调用“shallowClone.name = 'Peter';”,我也会改变“shallow”的名称。我是对的吗?但不知何故,它就是无法工作...