我想创建一个考虑对象是可变的复制构造函数。我的复制构造函数是错误的;我似乎无法弄清楚我做错了什么。Java复制构造函数ArrayLists
请不要告诉我使用clone()
。如何在这种情况下完成复制构造函数?我是Java新手,非常感谢任何帮助。
public class MyList {
public ArrayList<Cool> people;
/**
* "people" variable as a new (empty) ArrayList of Cool objects.
*/
public MyPersonList()
{
people = new ArrayList<Cool>(0);
}
/**
* A copy constructor which makes the right kind of copy considering
* a Cool is mutable.
*/
public MyList(MyList other)
{
people = new ArrayList<Cool>();
for(Cool p:people)
{
people.add(p);
}
}
'other.people'。也许增加一个'getPeople()'/'people()'方法返回列表的一个副本。 – 2013-05-02 00:43:49
当我做other.people时,让它= people = new ArrayList(other.people);这是不正确的 –
qkad
2013-05-02 00:49:28
是因为酷是可变的? – qkad 2013-05-02 00:55:01