鍍金池/ 問答/Java  iOS/ map在方法體內(nèi)用"="賦值

map在方法體內(nèi)用"="賦值

clipboard.png

如圖,我在main中定義了一個(gè)map1,與一個(gè)map2,map2中內(nèi)容是{"test":"test"},然后我在transform方法中,將map2賦值給map1,最后我在main中輸出map1.但是結(jié)果是{},也就是,在transform中經(jīng)過賦值操作后它的值仍然為空。

這是為什么呢?我所知道的應(yīng)該是和堆棧有關(guān),但是詳細(xì)原因有一些模糊,不知道有人可以詳細(xì)講一下嗎???

回答
編輯回答
嘟尛嘴

因?yàn)橘x值是賦給transform里面的那個(gè)map1 你打印的是main里的map1
這個(gè)兩個(gè)除了名字一樣 沒有什么關(guān)系

一共四個(gè)變量
main里的 map1 , map2
transform里的 map1 , map2

傳參之后 main的map1 和 transform的map1 指向同一個(gè)Map
map1 = map2 之后
transform 里的map1 指向 map2 的Map
main里的map1 還是指向原來的地址

2018年8月23日 11:02
編輯回答
笑忘初

推薦你看看java的值傳遞和引用傳遞 http://www.cnblogs.com/wang-m...,自己講不清楚

2017年4月18日 19:47