[OH NO!]集合操作错误

调用私有方法,

List<OrderLines>   lineChange=validateLineChange(newLines, oldLines);

private List<OrderLines>  validateLineChange(List<OrderLinesOperateForm> newLines,

List<OrderLines> oldLines) {

List<OrderLines> updateLines=new ArrayList<OrderLines>();

//这里需将oldLines的集合内容改掉

错误的方法oldLines= updateLines.

 

                正确的方法如下

              oldLines.clear();

oldLines.addAll(updateLines);

            //原因:集合在传参过程中,用的是引用,如果用 等号去改其内容,实际上是修改指针的指向,而原集合的内容没有发生变化 。

return changes;

记录每次的小错误。

猜你喜欢

转载自new-mao-er.iteye.com/blog/2245842