ArrayList.add()添加一个元素后,会把前面一个元素覆盖

来源:互联网 发布:windows是开源的吗 编辑:程序博客网 时间:2024/05/21 03:28


    今天写程序时,每次取值均正确,但是不管怎么输出,都是输出最后一次 add 的值,百思不得其解,后来才发现,java的list的 add方法引用的是地址,如果是全局的话,每次引用的值都一样,取的值也就一样了。每次add都用new一个新实体就可以解决问题了,接近两小时的青春浪费了,就因为一行代码位置错误,对 list 不熟悉。

大概如下:

FlightInfoVo fInfoVo = new FlightInfoVo();for(){fInfoVo.set ;.............................}list.add(fInfoVo);

解决办法:
new fInfoVo只有一个。
应该在循环内部,new一个新的fInfoVo,而不是 for 外部



0 0