博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring中BeanUtils.copyProperties方法测试
阅读量:6887 次
发布时间:2019-06-27

本文共 1632 字,大约阅读时间需要 5 分钟。

 

copyProperties顾名思义是复制属性,就是把A对象的属性复制给B对象的与之相同的属性。下面的属性省略Getter,Setter。

public class UserOne
{
 private int id;
 private String name;

 @Override

 public String toString()
 {
  return id + "......." + name;
 }
}

 

public class UserTwo
{
 private int id;
 private String name;
 private String address;

 @Override

 public String toString()
 {
  return id + "......." + name + "........" + address;
 }
}

 

 

public class UserThree

{
 private String id;
 private String name;
 private String address;

 @Override

 public String toString()
 {
  return id + "......." + name + "........" + address;
 }
}

 

import org.springframework.beans.BeanUtils;

public class Test

{
 public static void main(String[] args)
 {
  LessToMore();
  MoreToLess();
  ArgusMisMatch();
 }

 

 // 属性值少的复制给属性值多的,没有被复制到的属性就是该类型的默认值。 结果1......xy......null

 public static void LessToMore()
 {
  UserOne u1 = new UserOne();
  u1.setId(1);
  u1.setName("xy");
  UserTwo u2 = new UserTwo();
  BeanUtils.copyProperties(u1, u2);
  System.out.println(u2);
 }

 
 // 属性值多的复制给属性值少的。结果1......xy
 public static void MoreToLess()
 {
  UserTwo u2 = new UserTwo();
  u2.setId(1);
  u2.setName("xy");
  u2.setAddress("aa");
  UserOne u1 = new UserOne();

  BeanUtils.copyProperties(u2, u1);

  System.out.println(u1);
 }

 
 //  报错argument type mismatch。u2的id类型是int,u3的id类型是String
 public static void ArgusMisMatch()
 {
  UserTwo u2 = new UserTwo();
  u2.setId(1);
  u2.setName("xy");
  u2.setAddress("aa");
  UserThree u3 = new UserThree();
  BeanUtils.copyProperties(u2, u3);
  System.out.println(u3);
 }
}

 

总结一下

A对象把与同名且同类型的属性复制给B对象的属性。

没有同名的,B对象的没有被复制值的属性为该类型的默认值。

同名但类型不同,会报错:argument type mismatch

本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/961036如需转载请自行联系原作者

woshixuye111

你可能感兴趣的文章
关于redis,学会这8点就够了
查看>>
阿里小二的日常工作要被TA们“接管”了!
查看>>
权限框架Shiro学习之表结构设计
查看>>
Nginx 服务器之速率限制
查看>>
JavaScript实现多态和继承的封装操作示例
查看>>
大数据平台开发公司有哪些?
查看>>
用vs运行cmake后的工程
查看>>
1.1 函数定义 1.2 函数的参数 1.3 函数的默认参数
查看>>
不学无数——Java动态代理
查看>>
如何使用手机、家庭宽带作为爬虫的代理服务器
查看>>
Python黑客攻击的几种技术,你得了解一下
查看>>
你真的懂了redis的数据结构吗?redis内部数据结构和外部数据结构揭秘
查看>>
Ubuntu10.04LTS配置Hadoop1.0.1+HBase 0.92.0
查看>>
ST教学分析:相同行为连续数
查看>>
status2 转义输出
查看>>
[清华集训2016]如何优雅地求和——NTT
查看>>
JavaScript 原型链例子讲解
查看>>
书摘---创业36条军规7:业务的五个问题
查看>>
Linux学习-第三节课
查看>>
activemq搭建和使用
查看>>