今天用idea开发工具写项目,写了一个方法,参数里是该对象,对该对象操作以后再返回该对象。
报了一条黄线,然后点进去看了一下
他告诉我,这个变量已经赋予该值了,我就感觉挺奇怪,我从没做过赋值的操作,为什么告诉我 已经 赋予该值了呢?
思考了一下,想到了java的引用值传递的问题,搜了一下:
如果参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址。如果在函数中没有改变这个副本的地址,而是改变了地址中的值,那么在函数内的改变会影响到传入的参数。如果在函数中改变了副本的地址,如new一个,那么副本就指向了一个新的地址,此时传入的参数还是指向原来的 地址,所以不会改变参数的值。