Property.copyBean()方法和Property.cloneBean()方法,一个拷贝,一个克隆。深拷贝是重新new一块空间,重新拥有一份资源,浅拷贝只是将引用指向那块资源。可是,我的demo显示,两个都是深拷贝,如下:
copyProperties()方法:
Employee srcEmp = new Employee();
srcEmp.setName("name1");
Employee destEmp = new Employee();
PropertyUtils.copyProperties(destEmp, srcEmp);
// 测试是深拷贝还是浅拷贝
srcEmp.setName("name2");
System.out.println("访问拷贝Bean普通类型属性:");
System.out.println(destEmp.getName());
System.out.println("访问拷贝Bean自定义类型属性:");
System.out.println(destEmp.getAddress());                  结果为:
                  访问拷贝Bean普通类型属性:
                  name1cloneProperties()方法:
Employee emp1 = new Employee();
emp1.setName("name1");
Employee emp2 = (Employee) BeanUtils.cloneBean(emp1);
// 测试是深拷贝还是浅拷贝
emp1.setName("name2");
System.out.println("访问克隆Bean普通类型属性:");
System.out.println(emp2.getName());
                  结果为:
                  访问克隆Bean普通类型属性:
                  name1到底区别在哪里???