缘起 有一次开发过程中,刚好看到小伙伴在调用 set 方法,将数据库中查询出来的 Po 对象的属性拷贝到 Vo 对象中,类似这样: 可以看出,Po 和 Vo 两个类的字段绝大部分是一样的,我们一个个地调用 set 方法只是做了一些重复的冗长的操作.这种操作非常容易出错,因为对象的属性太多,有可能会漏掉一两个,而且肉眼很难察觉. 类似这样的操作,我们很容易想到可以通过反射来解决.其实,如此普遍通用的功能,一个 BeanUtils 工具类就可以搞定了. 于是我建议这位小伙伴了解一下 BeanUtil…
对象的复制默认为浅复制 进行深复制的方法为:在类中定义魔法方法__clone(),类的对象复制时,会自动调用 __clone方法,在 __clone方法中可以进行各种复制对象的个性化 class MyCloneable{ public $object1; public $object2; function __clone() { // 强制复制一份this->object, 否则仍然指向同一个对象 $this->object1 =…