Java常見對象引用錯誤
- 2020 年 12 月 22 日
- 筆記
2020-12-22 17:54:55
今天在寫財務系統某匯總功能的時候不小心犯了一個很基礎的錯誤,導致匯總和明細的某金額欄位核對出現一些誤差。
以下是bug解決前後程式碼對比:
修改前:
紅框內這樣賦值集合元素的引用看似沒啥問題,而且可以使程式碼更加簡潔,但是後面對賦值後的對象dto進行操作可能會改變集合tmpList元素的屬性值。
至今未想明白,這樣為什麼會對最終結果造成影響???
即使改變了集合tmpList元素的屬性值,循環到下一次也換成其他元素(tmpList)了啊。。。
修改後:
這樣寫才是對的,就是程式碼不夠簡潔,對於有程式碼潔癖的我來說也是挺難受的!!!
按理說應該這兩種情況得到的dataList是一樣的,可實際結果為什麼不一樣呢?求大神指教。。。謝謝!!!