当前位置: 首页 > news >正文

免费 网站 cms桂林两江四湖地图

免费 网站 cms,桂林两江四湖地图,东莞知名企业,苏州企业招聘spring下的beanutils.copyProperties方法是深拷贝还是浅拷贝#xff1f;可以实现深拷贝吗#xff1f; 答案#xff1a;浅拷贝。 一、浅拷贝深拷贝的理解 简单说拷贝就是将一个类中的属性拷贝到另一个中#xff0c;对于BeanUtils.copyProperties来说#xff0c;你必须保…spring下的beanutils.copyProperties方法是深拷贝还是浅拷贝可以实现深拷贝吗 答案浅拷贝。 一、浅拷贝深拷贝的理解 简单说拷贝就是将一个类中的属性拷贝到另一个中对于BeanUtils.copyProperties来说你必须保证属性名和类型是相同的因为它是根据get和set方法来赋值的。 1.1、浅拷贝 浅拷贝可以理解为如果是引用类型那么目标对象拷贝的只是源对象的地址无论目标对象还是源对象改变他们都会一起改变 。 1.2、深拷贝 深拷贝就是将目标对象的属性全部复制一份给源对象复制完之后他们就是隔开的没有任何关系无论操作源对象还是目标对象都对另一个没有影响 无论是浅拷贝还是深拷贝对于基本类型和String来说都是没有影响的有影响的只有引用类型数据。 二、测试beanutils.copyProperties为浅拷贝 建两个实体类 public class CityBean {String value;.......// 省略get和set方法Altinsert很快的 }public class FastdfsTest {private String id;private String name;private String size;private CityBean cityBean;.......// 省略get和set方法Altinsert很快的测试 Testpublic void testObjectMapper() throws IOException, MyException {// 源类FastdfsTest source new FastdfsTest();source.setId(fastdfsTest);source.setName(fastdfsTest);source.setSize(fastdfsTest);CityBean cityBean new CityBean();cityBean.setValue(CityBean源值);source.setCityBean(cityBean);// 目标类FastdfsTest target new FastdfsTest();// 把fastdfsTest中所有的属性都复制到fastdfsTestCopy中即使是cityBean也会被复制BeanUtils.copyProperties(source,target);CityBean sourceCity source.getCityBean();//在下面改变源类的引用数据如果BeanUtils.copyProperties是浅拷贝那么目标类拷贝的就是一个引用地址源类改变目标类也会跟着改变//如果BeanUtils.copyProperties是深拷贝则两边改变都不会相互影响sourceCity.setValue(CityBean目标值);System.out.println(source.toString() target.toString());}测试截图 这里可以看出BeanUtils.copyProperties是一个浅拷贝 三、如何用beanutils.copyProperties实现深拷贝 测试代码 /*** 测试stream中用BeanUtils.copyProperties是否是深拷贝*/Testpublic void testStream(){// 我从数据库查的其实就是创建几个数据这里就自己添加了哈ListFastdfsTest fastdfsTestList fastdfsTestService.selectFastdfsTestList();// 先构造fastdfsTestList fastdfsTestList.stream().map(k - {CityBean cityBean new CityBean();cityBean.setValue(新的value);k.setCityBean(cityBean);return k;}).collect(Collectors.toList());// 拷贝ListFastdfsTest fastdfsTestList2 fastdfsTestList.stream().map(k - {FastdfsTest fastdfsTest new FastdfsTest();BeanUtils.copyProperties(k,fastdfsTest);return fastdfsTest;}).collect(Collectors.toList());// 设置源对象引用字段为空fastdfsTestList.get(0).setCityBean(null);System.out.println(fastdfsTestList userDTOList fastdfsTestList2);}测试截图 这里可以看到改变源对象是不会影响目标对象的因此可以借助java8的一些stream新特性用BeanUtils.copyProperties这个方法来实现深拷贝任意两个类都可以哦 深拷贝模板 // 拷贝List目标类型 target source.stream().map(k - {目标类型 xxx new 目标类型();BeanUtils.copyProperties(k,xxx);return xxx;}).collect(Collectors.toList());
http://www.dnsts.com.cn/news/228278.html

相关文章:

  • 网站平台开发报价表怎么做智慧团建学生登录入口官网
  • 佛山网站seo推广推荐传媒公司招聘信息
  • 网站 项目方案企业文化墙制作
  • 营销网站建设yyeygtytty上海专业网站开发
  • 北京东直门网站建设网店出售
  • 广东建的电商网站叫啥域名备案中网站可以开通
  • 万网建设网站的步骤国内有类似wordpress
  • 网站品牌词优化怎么做南宁网站建设公司利润
  • 2017最新网站设计风格北京好的医疗网站设计
  • 网站前端提成多少百度推广手机登录
  • 关于 门户网站 建设 请示鄂尔多斯住房和城乡建设局网站
  • 建设网站论文范文软件开发设计文档示例
  • 食品网站建设 网站定制开发建设银行四川分行网站
  • 济南企业网站搭建赣州58同城网
  • 网站设计制作报价宁波市奉化区建设局网站
  • 上海网络科技公司官网wordpress模板优化
  • 品牌建设 网站网业是什么行业
  • 万维建设网站做公司网站需要多
  • 网站内容与模板设计方案代做网页
  • 大型网站建设洛阳网站制作泉州建设企业网站
  • 网站扫码充值怎么做的厦门做网站多
  • 大连新图闻网站设计厦门建设局保障房官网
  • 宠物食品 中企动力提供网站建设常州外贸网站设计
  • 做红酒闪购的网站有哪些天翼云主机 网站
  • wordpress menu温州百度推广排名优化
  • 企业网站如何备案流程信息网站开发网络公司
  • 做茶叶网站公司专业足球网站开发
  • 重庆有没有做网站的网络运行维护
  • 郑州陆港开发建设有限公司网站给一个学校网站做宣传海报
  • react做门户网站学历提升官网报名咨询