参数传递问题:如何在操作了一个自定义类型的参数后还能得到初始值呢?
一个自定义类型的参数Tuple, 如下:
public class Tuple implements TupleInterface {
private List attName;
private List attValue;
public Tuple() {
this.attName = new ArrayList();
this.attValue = new ArrayList();
}
public List getAttName() {
return this.attName;
}
public List getAttValue() {
return this.attValue;
}
}
在一个函数中(输入是一个tuple实例,输出还是一个tuple实例,是在输入的tuple上作些操作得出的),但是然后还想利用输入的初始值,可由于是引用传递,所以函数调用完之后初始值也改了,有什么方法保持原来的初始值吗?可以用什么方法先把初始值保存到别的tuple里吗?谢谢!
------解决方案--------------------google影子克隆和深度克隆,你的克隆并没有实现真正的新增对象
应该用
List tempTitle = new ArrayList();
for(int i = 0; i < title.size();i++){
tempTitle.add(title.get(i));
}
类似这样