今天写程序时,每次取值均正确,但是不管怎么输出,都是输出最后一次 add 的值,百思不得其解,后来才发现,java的list的 add方法引用的是地址,如果是全局的话,每次引用的值都一样,取的值也就一样了。每次add都用new一个新实体就可以解决问题了,接近两小时的青春浪费了,就因为一行代码位置错误,对 list 不熟悉。
大概如下:
FlightInfoVo fInfoVo = new FlightInfoVo(); for() { fInfoVo.set ; ............................. } list.add(fInfoVo);
解决办法:
new fInfoVo只有一个。
应该在循环内部,new一个新的fInfoVo,而不是 for 外部。