今天遇到一个问题,就是方法的返回值已经被前人使用了,不能做修改,而我这边又要用这儿方法处理一些其他的参数,改变他们的值。
初步的设想是我再方法外面new一个对象,把对象当作参数传到方法里,然后直接在方法里处理这个对象,改变这个对象的值。
测试的时候发现不可行,对象在方法里值改变了。方法结束以后,再次使用对象,还是传参之前的那个对象,没有变。
最后试了一下,发现是这样的,方法传参类似与复制一个数据去使用,方法结束以后,基本类型不会改变值,引用类型不会改变引用地址。
但是也有例外,后来发现,当传参为集合或者数组时,在方法中改变其中的元素,方法结束后改变还是生效的。
问题解决,把需要用到的参数,放到数组或者集合中,再把集合或者数组当作参数传入方法中进行处理即可。