当前位置: 首页 > 网络应用技术

beanutils#copyproperties属性副本

时间:2023-03-07 23:59:50 网络应用技术

  简而言之,将一个类中的属性复制到另一类。对于beanutils.copyproperties,您必须确保属性名称相同,因为它是根据get和set方法分配的。

  可以将浅副本理解为参考类型,然后目标对象副本仅是源对象的地址。无论目标对象还是源对象都会更改,它们都会一起改变。

  深度复制是将目标对象的所有属性复制到源对象。复制后,它们分开而没有任何关系。无论源对象或目标对象是什么,它都不会影响另一个。

  无论是浅副本还是深拷贝,都对基本类型和字符串没有影响。

  个人理解,通过以下代码,您可能会开始认为Internet上深度副本的定义不是问题,但是对于许多方法,说出该方法是问题的方法是有问题的。代码!

  输出结果如下:

  因为该方法是通过反射对象重新构造一个对象,无论原始目标对象中已经存在哪个参数值,它将被要复制的新对象的参数覆盖。

  我们还可以看到,在属性的副本中,没有特殊处理,并且引用了该类型的属性,因此本质也是浅副本。

  原始:https://juejin.cn/post/70974284577522695