我已经知道,浅拷贝是什么,但我不能提示它。这是一个简短的例子。Java中的浅拷贝
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 =‘彼得’; “我也会改变“浅”的名字。我对吗?但不知何故,它只是不想工作....
'新的浅(浅)'构造函数代码是怎么样的?你没有把它包括在问题中,而问题可能在那里引起。值得注意的是字符串是不可变的。 – BalusC 2010-04-25 18:08:20
刚刚编辑了构造函数。 此外:我其实喜欢只是复制对象的引用 - 这是目标;) – Vilius 2010-04-25 18:13:45