这是关于另一个类实例变量返回的ArrayList的用法。
Class A {
//assigned list of string to it.
private List < String > newAl;
//returns the list
public List < String > getList() {
return newA1;
}
}
Class Test {
public void go() {
List < String > list = a.getList();
list.add("");
}
}在测试类中,当我检索列表并操作引用的list.Because时,A类列表也得到了manipulated.If A是第三方code.How的一部分。我是否要更正测试类中的代码,以便原始对象不会受到影响?
发布于 2013-05-21 13:10:35
ArrayList constructor接受一个集合,因此您可以使用它:
List<String> list = new ArrayList(a.getList());我认为这样做更好,但根据您正在做的事情,您可能想要在getter中构造新的列表。这也有助于隐藏类型。
https://stackoverflow.com/questions/16662472
复制相似问题