List中对值的改变影响了另一个List的值
来源:互联网 发布:圣火明尊盾牌进阶数据 编辑:程序博客网 时间:2024/05/18 18:44
今天将一个 A list里面的值赋给另外一个B list之后,然后修改A list的值之后,同时把B list的的值也给修改了。下面是例子:
List<RedLightPerson> redLightPersons = redLightPersonDao.findLast(); for(RedLightPerson redLightPerson : redLightPersons){ redLightPerson.setRun("true"); } redLightPersonDao.save(redLightPersons); return new JsonObject(redLightPersons);
返回的list中run的值也变成了true,后面试了各种方法还是不行,后面再高人的指点下用了下面这个方法,问题顺利解决:
List<RedLightPerson> redLightPersons = redLightPersonDao.findLast(); List<RedLightPerson> redLightPersonList = new ArrayList<>(); try { for (RedLightPerson redLightPerson : redLightPersons) { redLightPersonList.add((RedLightPerson) BeanUtils.cloneBean(redLightPerson)); redLightPerson.setRun(HAVE_RUN); } } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } redLightPersonDao.save(redLightPersons); return new JsonObject(redLightPersonList);
主要是因为上面存到list中的是对象而不是基本类型,所以在修改另外一个列表的值时,也会影响到前面那个列表的对象的值。
而BeanUtils.cloneBean的作用就是复制一个JavaBean的实例。
1 0
- List中对值的改变影响了另一个List的值
- python中改变list中list值的问题
- 去除list中重复的值,并对list排序
- 将一个list的值存放到另一个list中去
- list循环改变元素的值写法
- C# 关于从List或Collection中找出对象的某个属性值与另一个list相同的全部对象
- List之间的复制-使用等于的话,操作一个list会改变另一个
- 在map组成的List中发现修改一个map中的key-value,会影响導另一个
- List拷贝另一个List的数据
- 对hibernate List一对多中list-index的理解
- 对hibernate List一对多中list-index的理解
- 在遍历List时,对List里的对象进行remove(),此操作会改变List的大小()
- 改变list列表的间距
- c:forEach中对List的遍历
- Java中对List的排序
- java中对集合List的操作
- 对Java 中List的理解
- C#中对List集合的理解
- 设计模式之迭代器模式(Iterator)
- QuartusII 问题总结
- POJ-1273(Dinic)题解 (漂亮版代码)
- jsessionid 对微信JS SDK 签名的影响
- Android AsyncTask类
- List中对值的改变影响了另一个List的值
- Java1.8集合
- SQL中如何获取记录的排名
- Josephus问题(基于数组的实现)
- 【JavaEE】经典JAVA EE企业应用实战-读书笔记15
- 关于input与IE8的一些事
- POJ 1054 The Troublesome Frog (枚举+优化)
- C语言小知识
- 输入银行卡号实现4位数出现一个空格