最近遇到了一个bug,在debug条件下可以看出更改后的值,但是在最终显示的结果中确实没有更改的值。经过很多次的调试后,才发现最后的原因竟然是因为参数传递的时候并没有将更改后的值传递给最终变量。
这时才意识到java中只存在值传递,不存在引用传递。这也就意味着传递的参数只是原来对象的拷贝,对于参数的改变并不会影响原来对象的值。所以想在一个方法中改变另一个类的对象,不能仅仅通过传入对象作为参数,还需要将更改后的值进行回传或者在一开始就导入整个对象,这样最终的结果才是正确的。
本文共 242 字,大约阅读时间需要 1 分钟。
最近遇到了一个bug,在debug条件下可以看出更改后的值,但是在最终显示的结果中确实没有更改的值。经过很多次的调试后,才发现最后的原因竟然是因为参数传递的时候并没有将更改后的值传递给最终变量。
这时才意识到java中只存在值传递,不存在引用传递。这也就意味着传递的参数只是原来对象的拷贝,对于参数的改变并不会影响原来对象的值。所以想在一个方法中改变另一个类的对象,不能仅仅通过传入对象作为参数,还需要将更改后的值进行回传或者在一开始就导入整个对象,这样最终的结果才是正确的。
转载地址:http://lvumo.baihongyu.com/