1 回答

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
首先,您輸入的代碼不應(yīng)編譯,因?yàn)閜air接受ArrayList并且您輸入了long。現(xiàn)在考慮這是一個(gè)拼寫(xiě)錯(cuò)誤,并且在您的代碼中,您在 x 的對(duì)中輸入了 y 而不是 testNumber,您已經(jīng)在對(duì)中添加了對(duì) Arraylist 的引用。并且 y 和您對(duì)中的引用指向同一內(nèi)存位置的同一對(duì)象。因此,當(dāng)您清除 y 時(shí),該內(nèi)存位置的數(shù)據(jù)將被清除。而且由于您的對(duì)也指向已被清除的相同內(nèi)存位置,因此您得到了空數(shù)據(jù)。這就像用他的正式姓名和昵稱來(lái)稱呼一個(gè)人一樣,因?yàn)閮烧叨贾赶蛲粋€(gè)人。
解決方案應(yīng)該是在將 y 添加到對(duì)之前先復(fù)制 y 并將該副本添加到該對(duì)中。嘗試
x.add(Pair("testString",ArrayList(y))
或者您可以手動(dòng)對(duì) y 進(jìn)行深層復(fù)制,然后將其輸入到 x 中
添加回答
舉報(bào)