- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已在
的帮助下将一个对象复制到另一个对象中BeanUtils.CopyProperties(Src,Dest);
From : package org.springframework.beans;
现在,在逻辑上更进一步,在迭代器的帮助下,我修改了 Dest 对象内的列表。
我希望 src 对象保持原样。
但我看到了一个奇怪的行为。我的 Src 也在修改。
可能是什么原因?
示例:src 和 Dest 有列表:[芒果,苹果]
我在 iteartor 的帮助下从 Dest 中删除了 Mango。
后来我明白了
源码有[Apple]
目的地有[Apple]
这是因为浅复制而发生的吗?
最佳答案
您不想复制 List
字段,而是将其克隆到新复制的对象中。
BeanUtils.copyProperties(Object source, Object target)
在其 javadoc 中没有明确说明,但它会从一个对象到另一个对象进行浅拷贝。
这意味着在target
对象中,List
字段将引用与source
对象中的同一对象。
因此,修改一个或另一个对象的 List
字段将反射(reflect)在另一个对象中。
要创建新的 List,您应该创建一个新的 List 实例,其中包含源 List
中的实际元素,并将其分配给目标对象中的 List
字段.
例如:
MyObject source = ...;
MyObject target = ...;
BeanUtils.copyProperties(source, target);
...
List<String> newList = new ArrayList<>(source.getList());
target.setList(newList);
关于java - 当我修改 BeanUtils.CopyProperties 的目标对象时,源代码被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44611934/
前言 最近项目上要求升级一个工具包 hutool 的版本,以解决安全漏洞问题,这不升级还好,一升级反而捅出了更大的篓子,究竟是怎么回事呢? 事件回顾 我们项目原先使用的 hu
目录 BeanUtils.copyProperties()参数的赋值顺序 BeanUtils.copyProperties初体验,及其参数含义解释
Beanutils.copyProperties()用法及重写提高效率 特别说明本文介绍的是Spring(import org.springframework.beans.BeanUtils)中的
目录 BeanUtils.copyProperties()拷贝id属性失败 部分代码如下 解决方法 BeanUtils.co
java对象复制或拷贝之BeanUtils.copyProperties() 用法,一行语句实现对象间快速复制 即 BeanUtils.copyProperties(源对象, 目标对象); 使用注意事
我有以下类(class): import org.apache.commons.beanutils.BeanUtils; import com.thoughtworks.xstream.XStream
我正在使用 BeanUtils.copyProperties 将一个对象的全部内容复制到从它继承的另一个对象中。 这里是上下文,从中复制值的域对象包含一组自定义类型 Xref 的对象。该自定义类型有一
我正在使用 commons-beanutils 1.8.3 和 Date 属性作为 java.util.Date。 当我尝试将源复制到目标时,它无法复制日期属性。 以下是我之前的问题,但是没有人给我正
我想将一个对象转换为另一个对象,为此我使用 Spring BeanUtils。但是 Bag 类型的属性“foo” (从 Hibernate 发出)被复制到 List 类型的目标对象中没有问题。 使用相
我正在使用 PropertyUtils.copyProperties()通过反射复制对象的属性,它曾经工作得很好。然而最近,它开始无所事事。 它不会抛出异常,但不会复制任何字段。尽管源对象中有非空字段
为了测试这一点,我迅速做出了以下: public class Test { public static void main(String[] args) { try { Employee e
我知道 BeanUtils 可以将单个对象复制到其他对象。 是否可以复制数组列表。 例如: FromBean fromBean = new FromBean("fromBean", "fromBea
我正在尝试将属性从一个 bean 复制到另一个。下面是两个 bean 的签名: 搜索内容: public class SearchContent implements Serializable {
前言 BeanUtils.copyProperties十有八九是你这些年工作中用的很多的其中一个,不管是Apache的还是Spring的。 网上的解释浩如烟海,我这边用一
dto 对象: public class DTOUser implements UserDetails { /** * */ private static final long serialVer
如何关闭 BeanUtils.copyProperties 的日志记录?它会创建过多的日志并妨碍日志文件的可读性。谢谢堆.. 示例代码 BeanUtils.copyProperties(someDat
springframework.beans.BeanUtils 对于复制对象非常有用,我经常使用“ignoreProperties”选项。但是,有时我只想复制特定的对象(基本上,与“忽略属性”相反)。
有没有办法让 BeanUtils 使用 protected setXXX(X x) 方法?或者您知道执行此操作的其他方法吗? 类似于: public class A{ private Stri
我有一个数字数据库字段(SQL Server 2000 中的 numeric(3))允许空值,而空值是我首选的“无值”值。 该字段映射到非原始 java Long Hibernate 中的类: 字段
我已在 的帮助下将一个对象复制到另一个对象中 BeanUtils.CopyProperties(Src,Dest); From : package org.springframework.beans;
我是一名优秀的程序员,十分优秀!