关于BeanUtils.copyProperties是否能正常复制字段【详细版】 ...

打印 上一主题 下一主题

主题 833|帖子 833|积分 2499

话不多说!先总结:

1、字段相同,类型不同(不复制,也不报错)
2、子类父类
(1)子类传给父类(可以正常复制)
(2)父类传给子类(可以正常复制)
3、子类父类(属性类对象)
(1)子类属性传给父类属性(可以正常复制)
(2)父类属性传给子类属性(不复制,也不报错)

具体代码如下:
1、字段相同,类型不同(不复制,也不报错)
  1.                 RequestVO order = new RequestVO();
  2.                 order.setLinkId("linkId");
  3.                 order.setPayType("1");
  4.                
  5.                 RequestVO2 order1 = new RequestVO2();
  6.                 BeanUtils.copyProperties(order, order1);
  7.                
  8.                 System.out.println(order1.getLinkId());
  9.                 System.out.println(order1.getPayType());
复制代码
  1. linkId
  2. null
复制代码
2、子类父类
(1)子类传给父类(可以正常复制)
  1.                 RequestVTest order1 = new RequestVTest();
  2.                 order1.setLinkId("linkId1");
  3.                 order1.setOrderId("orderId1");
  4.                 order1.setPayType("payType");
  5.                
  6.                 RequestVO order = new RequestVO();
  7.                 BeanUtils.copyProperties(order1, order);
  8.                
  9.                 System.out.println(order.getLinkId());
  10.                 System.out.println(order.getPayType());
复制代码
  1. linkId1
  2. payType
复制代码
(2)父类传给子类(可以正常复制)
  1.                 OneToManyOrderRequestVTest order1 = new RequestVTest();
  2.                
  3.                 RequestVO order = new RequestVO();
  4.                 order.setLinkId("linkId1");
  5.                 order.setOrderId("orderId1");
  6.                 BeanUtils.copyProperties(order, order1);
  7.                
  8.                 System.out.println(order1.getLinkId());
  9.                 System.out.println(order1.getOrderId());
复制代码
  1. linkId1
  2. orderId1
复制代码
3、子类父类(属性类对象)
(1)子类属性传给父类属性(可以正常复制)
  1.                 UserRequestVO vo = new UserRequestVO();
  2.                 UserRequestVO2 vo1 = new UserRequestVO2();
  3.                 RequestVTest order1 = new RequestVTest();
  4.                 order1.setLinkId("linkId1");
  5.                 order1.setOrderId("orderId1");
  6.                 vo1.setOrderRequestVO(order1);
  7.                
  8.                 BeanUtils.copyProperties(vo1, vo);
  9.                 System.out.println(vo.getOrderRequestVO().getLinkId());
  10.                 System.out.println(vo.getOrderRequestVO().getOrderId());
复制代码
  1. linkId1
  2. orderId1
复制代码
(2)父类属性传给子类属性(不复制,也不报错)
  1.                 UserRequestVO vo = new UserRequestVO();
  2.                 OrderRequestVO order1 = new OrderRequestVO();
  3.                 order1.setLinkId("linkId1");
  4.                 order1.setOrderId("orderId1");
  5.                 vo.setOrderRequestVO(order1);
  6.                
  7.                 UserRequestVO2 vo1 = new UserRequestVO2();
  8.                 vo1.setOrderRequestVO(new OrderRequestVTest());
  9.                 BeanUtils.copyProperties(vo, vo1);
  10.                 System.out.println(vo1.getOrderRequestVO().getLinkId());
  11.                 System.out.println(vo1.getOrderRequestVO().getOrderId());
复制代码
  1. null
  2. null
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表