日期:2014-05-20  浏览次数:20797 次

参数传递问题:如何在操作了一个自定义类型的参数后还能得到初始值呢?
一个自定义类型的参数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));
}
类似这样